2022-10-08 10:01:31 -07:00
|
|
|
// Copyright (c) FIRST and other WPILib contributors.
|
|
|
|
|
// Open Source Software; you can modify and/or share it under the terms of
|
|
|
|
|
// the WPILib BSD license file in the root directory of this project.
|
|
|
|
|
|
|
|
|
|
#include "PubSubOptions.h"
|
|
|
|
|
|
|
|
|
|
#include "ntcore_cpp.h"
|
|
|
|
|
|
|
|
|
|
using namespace nt;
|
|
|
|
|
|
2022-10-15 16:33:14 -07:00
|
|
|
nt::PubSubOptions::PubSubOptions(std::span<const PubSubOption> options) {
|
2022-10-08 10:01:31 -07:00
|
|
|
for (auto&& option : options) {
|
|
|
|
|
switch (option.type) {
|
|
|
|
|
case NT_PUBSUB_PERIODIC:
|
|
|
|
|
periodic = option.value;
|
|
|
|
|
break;
|
|
|
|
|
case NT_PUBSUB_SENDALL:
|
|
|
|
|
sendAll = option.value != 0;
|
|
|
|
|
if (sendAll) {
|
|
|
|
|
pollStorageSize = 20;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case NT_PUBSUB_TOPICSONLY:
|
|
|
|
|
topicsOnly = option.value != 0;
|
|
|
|
|
break;
|
|
|
|
|
case NT_PUBSUB_KEEPDUPLICATES:
|
|
|
|
|
keepDuplicates = option.value != 0;
|
|
|
|
|
break;
|
|
|
|
|
case NT_PUBSUB_POLLSTORAGE:
|
|
|
|
|
pollStorageSize = static_cast<size_t>(option.value);
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|