WPILibC++ 2024.3.2
nt::NetworkTableListener Class Referencefinal

Event listener. More...

#include <networktables/NetworkTableListener.h>

Public Member Functions

 NetworkTableListener ()=default
 
 NetworkTableListener (const NetworkTableListener &)=delete
 
NetworkTableListeneroperator= (const NetworkTableListener &)=delete
 
 NetworkTableListener (NetworkTableListener &&rhs)
 
NetworkTableListeneroperator= (NetworkTableListener &&rhs)
 
 ~NetworkTableListener ()
 
 operator bool () const
 
NT_Listener GetHandle () const
 Gets the native handle. More...
 
bool WaitForQueue (double timeout)
 Wait for the listener queue to be empty. More...
 

Static Public Member Functions

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. More...
 
static NetworkTableListener CreateListener (Topic topic, unsigned int mask, ListenerCallback listener)
 Create a listener for changes on a particular topic. More...
 
static NetworkTableListener CreateListener (Subscriber &subscriber, unsigned int mask, ListenerCallback listener)
 Create a listener for topic changes on a subscriber. More...
 
static NetworkTableListener CreateListener (MultiSubscriber &subscriber, unsigned int mask, ListenerCallback listener)
 Create a listener for topic changes on a subscriber. More...
 
static NetworkTableListener CreateListener (NetworkTableEntry &entry, unsigned int mask, ListenerCallback listener)
 Create a listener for topic changes on an entry. More...
 
static NetworkTableListener CreateConnectionListener (NetworkTableInstance inst, bool immediate_notify, ListenerCallback listener)
 Create a connection listener. More...
 
static NetworkTableListener CreateTimeSyncListener (NetworkTableInstance inst, bool immediate_notify, ListenerCallback listener)
 Create a time synchronization listener. More...
 
static NetworkTableListener CreateLogger (NetworkTableInstance inst, unsigned int minLevel, unsigned int maxLevel, ListenerCallback listener)
 Create a listener for log messages. More...
 

Detailed Description

Event listener.

This calls back to a callback function when an event matching the specified mask occurs. The callback function is called asynchronously on a separate thread, so it's important to use synchronization or atomics when accessing any shared state from the callback function.

Constructor & Destructor Documentation

◆ NetworkTableListener() [1/3]

nt::NetworkTableListener::NetworkTableListener ( )
default

◆ NetworkTableListener() [2/3]

nt::NetworkTableListener::NetworkTableListener ( const NetworkTableListener )
delete

◆ NetworkTableListener() [3/3]

nt::NetworkTableListener::NetworkTableListener ( NetworkTableListener &&  rhs)
inline

◆ ~NetworkTableListener()

nt::NetworkTableListener::~NetworkTableListener ( )
inline

Member Function Documentation

◆ CreateConnectionListener()

NetworkTableListener nt::NetworkTableListener::CreateConnectionListener ( NetworkTableInstance  inst,
bool  immediate_notify,
ListenerCallback  listener 
)
inlinestatic

Create a connection listener.

Parameters
instinstance
immediate_notifynotify listener of all existing connections
listenerlistener function
Returns
Listener

◆ CreateListener() [1/5]

NetworkTableListener nt::NetworkTableListener::CreateListener ( MultiSubscriber subscriber,
unsigned int  mask,
ListenerCallback  listener 
)
inlinestatic

Create a listener for topic changes on a subscriber.

This does NOT keep the subscriber active.

Parameters
subscriberSubscriber
maskBitmask of EventFlags values
listenerListener function
Returns
Listener

◆ CreateListener() [2/5]

NetworkTableListener nt::NetworkTableListener::CreateListener ( NetworkTableEntry entry,
unsigned int  mask,
ListenerCallback  listener 
)
inlinestatic

Create a listener for topic changes on an entry.

Parameters
entryEntry
maskBitmask of EventFlags values
listenerListener function
Returns
Listener

◆ CreateListener() [3/5]

NetworkTableListener nt::NetworkTableListener::CreateListener ( NetworkTableInstance  inst,
std::span< const std::string_view prefixes,
unsigned int  mask,
ListenerCallback  listener 
)
inlinestatic

Create a listener for changes to topics with names that start with any of the given prefixes.

This creates a corresponding internal subscriber with the lifetime of the listener.

Parameters
instInstance
prefixesTopic name string prefixes
maskBitmask of EventFlags values
listenerListener function
Returns
Listener

◆ CreateListener() [4/5]

NetworkTableListener nt::NetworkTableListener::CreateListener ( Subscriber subscriber,
unsigned int  mask,
ListenerCallback  listener 
)
inlinestatic

Create a listener for topic changes on a subscriber.

This does NOT keep the subscriber active.

Parameters
subscriberSubscriber
maskBitmask of EventFlags values
listenerListener function
Returns
Listener

◆ CreateListener() [5/5]

NetworkTableListener nt::NetworkTableListener::CreateListener ( Topic  topic,
unsigned int  mask,
ListenerCallback  listener 
)
inlinestatic

Create a listener for changes on a particular topic.

This creates a corresponding internal subscriber with the lifetime of the listener.

Parameters
topicTopic
maskBitmask of EventFlags values
listenerListener function
Returns
Listener

◆ CreateLogger()

NetworkTableListener nt::NetworkTableListener::CreateLogger ( NetworkTableInstance  inst,
unsigned int  minLevel,
unsigned int  maxLevel,
ListenerCallback  listener 
)
inlinestatic

Create a listener for log messages.

By default, log messages are sent to stderr; this function sends log messages with the specified levels to the provided callback function instead. The callback function will only be called for log messages with level greater than or equal to minLevel and less than or equal to maxLevel; messages outside this range will be silently ignored.

Parameters
instinstance
minLevelminimum log level
maxLevelmaximum log level
listenerlistener function
Returns
Listener

◆ CreateTimeSyncListener()

NetworkTableListener nt::NetworkTableListener::CreateTimeSyncListener ( NetworkTableInstance  inst,
bool  immediate_notify,
ListenerCallback  listener 
)
inlinestatic

Create a time synchronization listener.

Parameters
instinstance
immediate_notifynotify listener of current time synchronization value
listenerlistener function
Returns
Listener

◆ GetHandle()

NT_Listener nt::NetworkTableListener::GetHandle ( ) const
inline

Gets the native handle.

Returns
Handle

◆ operator bool()

nt::NetworkTableListener::operator bool ( ) const
inlineexplicit

◆ operator=() [1/2]

NetworkTableListener & nt::NetworkTableListener::operator= ( const NetworkTableListener )
delete

◆ operator=() [2/2]

NetworkTableListener & nt::NetworkTableListener::operator= ( NetworkTableListener &&  rhs)
inline

◆ WaitForQueue()

bool nt::NetworkTableListener::WaitForQueue ( double  timeout)
inline

Wait for the listener queue to be empty.

This is primarily useful for deterministic testing. This blocks until either the listener queue is empty (e.g. there are no more events that need to be passed along to callbacks or poll queues) or the timeout expires.

Parameters
timeouttimeout, in seconds. Set to 0 for non-blocking behavior, or a negative value to block indefinitely
Returns
False if timed out, otherwise true.

The documentation for this class was generated from the following files: