WPILibC++  2019.1.1-beta-4-27-ga2368a6
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
Entry Listener Functions

Typedefs

typedef std::function< void(NT_EntryListener
entry_listener, StringRef name,
std::shared_ptr< Value > value,
unsigned int flags)> 
nt::EntryListenerCallback
 Entry listener callback function. More...
 

Functions

NT_EntryListener nt::AddEntryListener (StringRef prefix, EntryListenerCallback callback, unsigned int flags)
 Add a listener for all entries starting with a certain prefix. More...
 
NT_EntryListener nt::AddEntryListener (NT_Inst inst, const Twine &prefix, std::function< void(const EntryNotification &event)> callback, unsigned int flags)
 Add a listener for all entries starting with a certain prefix. More...
 
NT_EntryListener nt::AddEntryListener (NT_Entry entry, std::function< void(const EntryNotification &event)> callback, unsigned int flags)
 Add a listener for a single entry. More...
 
NT_EntryListenerPoller nt::CreateEntryListenerPoller (NT_Inst inst)
 Create a entry listener poller. More...
 
void nt::DestroyEntryListenerPoller (NT_EntryListenerPoller poller)
 Destroy a entry listener poller. More...
 
NT_EntryListener nt::AddPolledEntryListener (NT_EntryListenerPoller poller, const Twine &prefix, unsigned int flags)
 Create a polled entry listener. More...
 
NT_EntryListener nt::AddPolledEntryListener (NT_EntryListenerPoller poller, NT_Entry entry, unsigned int flags)
 Create a polled entry listener. More...
 
std::vector< EntryNotification > nt::PollEntryListener (NT_EntryListenerPoller poller)
 Get the next entry listener event. More...
 
std::vector< EntryNotification > nt::PollEntryListener (NT_EntryListenerPoller poller, double timeout, bool *timed_out)
 Get the next entry listener event. More...
 
void nt::CancelPollEntryListener (NT_EntryListenerPoller poller)
 Cancel a PollEntryListener call. More...
 
void nt::RemoveEntryListener (NT_EntryListener entry_listener)
 Remove an entry listener. More...
 
bool nt::WaitForEntryListenerQueue (NT_Inst inst, double timeout)
 Wait for the entry listener queue to be empty. More...
 

Detailed Description

Typedef Documentation

typedef std::function<void(NT_EntryListener entry_listener, StringRef name, std::shared_ptr<Value> value, unsigned int flags)> nt::EntryListenerCallback

Entry listener callback function.

Called when a key-value pair is changed.

Parameters
entry_listenerentry listener handle returned by callback creation function
nameentry name
valuethe new value
flagsupdate flags; for example, NT_NOTIFY_NEW if the key did not previously exist

Function Documentation

NT_EntryListener nt::AddEntryListener ( StringRef  prefix,
EntryListenerCallback  callback,
unsigned int  flags 
)

Add a listener for all entries starting with a certain prefix.

Parameters
prefixUTF-8 string prefix
callbacklistener to add
flagsNotifyKind bitmask
Returns
Listener handle
NT_EntryListener nt::AddEntryListener ( NT_Inst  inst,
const Twine &  prefix,
std::function< void(const EntryNotification &event)>  callback,
unsigned int  flags 
)

Add a listener for all entries starting with a certain prefix.

Parameters
prefixUTF-8 string prefix
callbacklistener to add
flagsNotifyKind bitmask
Returns
Listener handle
Parameters
instinstance handle
NT_EntryListener nt::AddEntryListener ( NT_Entry  entry,
std::function< void(const EntryNotification &event)>  callback,
unsigned int  flags 
)

Add a listener for a single entry.

Parameters
entryentry handle
callbacklistener to add
flagsNotifyKind bitmask
Returns
Listener handle
NT_EntryListener nt::AddPolledEntryListener ( NT_EntryListenerPoller  poller,
const Twine &  prefix,
unsigned int  flags 
)

Create a polled entry listener.

The caller is responsible for calling PollEntryListener() to poll.

Parameters
pollerpoller handle
prefixUTF-8 string prefix
flagsNotifyKind bitmask
Returns
Listener handle
NT_EntryListener nt::AddPolledEntryListener ( NT_EntryListenerPoller  poller,
NT_Entry  entry,
unsigned int  flags 
)

Create a polled entry listener.

The caller is responsible for calling PollEntryListener() to poll.

Parameters
pollerpoller handle
prefixUTF-8 string prefix
flagsNotifyKind bitmask
Returns
Listener handle
void nt::CancelPollEntryListener ( NT_EntryListenerPoller  poller)

Cancel a PollEntryListener call.

This wakes up a call to PollEntryListener for this poller and causes it to immediately return an empty array.

Parameters
pollerpoller handle
NT_EntryListenerPoller nt::CreateEntryListenerPoller ( NT_Inst  inst)

Create a entry listener poller.

A poller provides a single queue of poll events. Events linked to this poller (using AddPolledEntryListener()) will be stored in the queue and must be collected by calling PollEntryListener(). The returned handle must be destroyed with DestroyEntryListenerPoller().

Parameters
instinstance handle
Returns
poller handle
void nt::DestroyEntryListenerPoller ( NT_EntryListenerPoller  poller)

Destroy a entry listener poller.

This will abort any blocked polling call and prevent additional events from being generated for this poller.

Parameters
pollerpoller handle
std::vector<EntryNotification> nt::PollEntryListener ( NT_EntryListenerPoller  poller)

Get the next entry listener event.

This blocks until the next event occurs. This is intended to be used with AddPolledEntryListener(); entry listeners created using AddEntryListener() will not be serviced through this function.

Parameters
pollerpoller handle
Returns
Information on the entry listener events. Only returns empty if an error occurred (e.g. the instance was invalid or is shutting down).
std::vector<EntryNotification> nt::PollEntryListener ( NT_EntryListenerPoller  poller,
double  timeout,
bool *  timed_out 
)

Get the next entry listener event.

This blocks until the next event occurs or it times out. This is intended to be used with AddPolledEntryListener(); entry listeners created using AddEntryListener() will not be serviced through this function.

Parameters
pollerpoller handle
timeouttimeout, in seconds
timed_outtrue if the timeout period elapsed (output)
Returns
Information on the entry listener events. If empty is returned and and timed_out is also false, an error occurred (e.g. the instance was invalid or is shutting down).
void nt::RemoveEntryListener ( NT_EntryListener  entry_listener)

Remove an entry listener.

Parameters
entry_listenerListener handle to remove
bool nt::WaitForEntryListenerQueue ( NT_Inst  inst,
double  timeout 
)

Wait for the entry listener queue to be empty.

This is primarily useful for deterministic testing. This blocks until either the entry 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
instinstance handle
timeouttimeout, in seconds. Set to 0 for non-blocking behavior, or a negative value to block indefinitely
Returns
False if timed out, otherwise true.