21class NetworkTableEntry;
22class NetworkTableInstance;
51 mask, std::move(listener))};
130 std::move(listener))};
148 std::move(listener))};
166 unsigned int minLevel,
167 unsigned int maxLevel,
170 maxLevel, std::move(listener))};
184 m_handle = rhs.m_handle;
195 explicit operator bool()
const {
return m_handle != 0; }
250 : m_handle(rhs.m_handle) {
258 m_handle = rhs.m_handle;
269 explicit operator bool()
const {
return m_handle != 0; }
301 return ::nt::AddPolledListener(m_handle, topic.
GetHandle(), mask);
313 return ::nt::AddPolledListener(m_handle, subscriber.
GetHandle(), mask);
325 return ::nt::AddPolledListener(m_handle, subscriber.
GetHandle(), mask);
336 return ::nt::AddPolledListener(m_handle, entry.
GetHandle(), mask);
348 return ::nt::AddPolledListener(
364 return ::nt::AddPolledListener(
381 return ::nt::AddPolledLogger(m_handle, minLevel, maxLevel);
396 std::vector<Event>
ReadQueue() { return ::nt::ReadListenerQueue(m_handle); }
Subscribe to multiple topics based on one or more topic name prefixes.
Definition MultiSubscriber.h:20
NT_MultiSubscriber GetHandle() const
Gets the native handle.
Definition MultiSubscriber.h:71
NetworkTables Entry.
Definition NetworkTableEntry.h:31
NT_Entry GetHandle() const
Gets the native handle for the entry.
Definition NetworkTableEntry.h:57
NetworkTables Instance.
Definition NetworkTableInstance.h:68
NT_Inst GetHandle() const
Gets the native handle for the entry.
Definition NetworkTableInstance.h:161
Event listener.
Definition NetworkTableListener.h:32
static NetworkTableListener CreateTimeSyncListener(NetworkTableInstance inst, bool immediate_notify, ListenerCallback listener)
Create a time synchronization listener.
Definition NetworkTableListener.h:142
static NetworkTableListener CreateListener(NetworkTableInstance inst, std::span< const std::string_view > prefixes, unsigned int mask, ListenerCallback listener)
Create a listener for changes to topics with names that start with any of the given prefixes.
Definition NetworkTableListener.h:47
NetworkTableListener & operator=(NetworkTableListener &&rhs)
Definition NetworkTableListener.h:180
NetworkTableListener & operator=(const NetworkTableListener &)=delete
bool WaitForQueue(double timeout)
Wait for the listener queue to be empty.
Definition NetworkTableListener.h:214
static NetworkTableListener CreateListener(NetworkTableEntry &entry, unsigned int mask, ListenerCallback listener)
Create a listener for topic changes on an entry.
Definition NetworkTableListener.h:109
static NetworkTableListener CreateLogger(NetworkTableInstance inst, unsigned int minLevel, unsigned int maxLevel, ListenerCallback listener)
Create a listener for log messages.
Definition NetworkTableListener.h:165
NT_Listener GetHandle() const
Gets the native handle.
Definition NetworkTableListener.h:202
NetworkTableListener(const NetworkTableListener &)=delete
static NetworkTableListener CreateListener(Subscriber &subscriber, unsigned int mask, ListenerCallback listener)
Create a listener for topic changes on a subscriber.
Definition NetworkTableListener.h:78
~NetworkTableListener()
Definition NetworkTableListener.h:189
static NetworkTableListener CreateListener(Topic topic, unsigned int mask, ListenerCallback listener)
Create a listener for changes on a particular topic.
Definition NetworkTableListener.h:63
NetworkTableListener()=default
static NetworkTableListener CreateListener(MultiSubscriber &subscriber, unsigned int mask, ListenerCallback listener)
Create a listener for topic changes on a subscriber.
Definition NetworkTableListener.h:94
static NetworkTableListener CreateConnectionListener(NetworkTableInstance inst, bool immediate_notify, ListenerCallback listener)
Create a connection listener.
Definition NetworkTableListener.h:124
NetworkTableListener(NetworkTableListener &&rhs)
Definition NetworkTableListener.h:176
Event polled listener.
Definition NetworkTableListener.h:233
void RemoveListener(NT_Listener listener)
Remove a listener.
Definition NetworkTableListener.h:389
NT_Listener AddListener(MultiSubscriber &subscriber, unsigned int mask)
Start listening to topic changes on a subscriber.
Definition NetworkTableListener.h:324
NT_ListenerPoller GetHandle() const
Gets the native handle.
Definition NetworkTableListener.h:276
NT_Listener AddListener(Topic topic, unsigned int mask)
Start listening to changes to a particular topic.
Definition NetworkTableListener.h:300
NT_Listener AddTimeSyncListener(bool immediate_notify)
Add a time synchronization listener.
Definition NetworkTableListener.h:363
NetworkTableListenerPoller()=default
NetworkTableListenerPoller(NetworkTableListenerPoller &&rhs)
Definition NetworkTableListener.h:249
NetworkTableListenerPoller(const NetworkTableListenerPoller &)=delete
NT_Listener AddLogger(unsigned int minLevel, unsigned int maxLevel)
Add logger callback function.
Definition NetworkTableListener.h:380
NT_Listener AddListener(std::span< const std::string_view > prefixes, unsigned int mask)
Start listening to topic changes for topics with names that start with any of the given prefixes.
Definition NetworkTableListener.h:287
NetworkTableListenerPoller(NetworkTableInstance inst)
Construct a listener poller.
Definition NetworkTableListener.h:242
std::vector< Event > ReadQueue()
Read events.
Definition NetworkTableListener.h:396
NetworkTableListenerPoller & operator=(const NetworkTableListenerPoller &)=delete
NT_Listener AddConnectionListener(bool immediate_notify)
Add a connection listener.
Definition NetworkTableListener.h:347
NetworkTableListenerPoller & operator=(NetworkTableListenerPoller &&rhs)
Definition NetworkTableListener.h:254
NT_Listener AddListener(Subscriber &subscriber, unsigned int mask)
Start listening to topic changes on a subscriber.
Definition NetworkTableListener.h:312
NT_Listener AddListener(NetworkTableEntry &entry, unsigned int mask)
Start listening to topic changes on an entry.
Definition NetworkTableListener.h:335
~NetworkTableListenerPoller()
Definition NetworkTableListener.h:263
NetworkTables subscriber.
Definition Topic.h:321
NT_Subscriber GetHandle() const
Gets the native handle for the subscriber.
Definition Topic.h:353
NetworkTables Topic.
Definition Topic.h:28
NT_Topic GetHandle() const
Gets the native handle for the topic.
Definition Topic.h:45
NT_Handle NT_Listener
Definition ntcore_c.h:39
NT_Handle NT_ListenerPoller
Definition ntcore_c.h:40
@ NT_EVENT_TIMESYNC
Time synchronized with server.
Definition ntcore_c.h:127
@ NT_EVENT_CONNECTION
Any connection event (connect or disconnect).
Definition ntcore_c.h:109
@ NT_EVENT_IMMEDIATE
Initial listener addition.
Definition ntcore_c.h:103
NT_Inst GetInstanceFromHandle(NT_Handle handle)
Get instance handle from another handle.
NT_Listener AddPolledListener(NT_ListenerPoller poller, std::span< const std::string_view > prefixes, unsigned int mask)
Creates a polled listener.
NT_ListenerPoller CreateListenerPoller(NT_Inst inst)
Creates a listener poller.
bool WaitForListenerQueue(NT_Handle handle, double timeout)
Wait for the listener queue to be empty.
NT_Listener AddListener(NT_Inst inst, std::span< const std::string_view > prefixes, unsigned int mask, ListenerCallback callback)
Create a listener for changes to topics with names that start with any of the given prefixes.
void DestroyListenerPoller(NT_ListenerPoller poller)
Destroys a listener poller.
std::function< void(const Event &)> ListenerCallback
Definition ntcore_cpp.h:899
void RemoveListener(NT_Listener listener)
Removes a listener.
NT_Listener AddLogger(NT_Inst inst, unsigned int min_level, unsigned int max_level, ListenerCallback func)
Add logger callback function.
NetworkTables (ntcore) namespace.
Definition ntcore_cpp.h:36