WPILibC++  unspecified
Logger Functions

Typedefs

typedef void(* NT_LogFunc) (void *data, const struct NT_LogMessage *msg)
 Log function. More...
 
typedef std::function< void(unsigned int level, const char *file, unsigned int line, const char *msg)> nt::LogFunc
 Log function. More...
 

Functions

NT_Logger NT_AddLogger (NT_Inst inst, void *data, NT_LogFunc func, unsigned int min_level, unsigned int max_level)
 Add logger callback function. More...
 
NT_LoggerPoller NT_CreateLoggerPoller (NT_Inst inst)
 Create a log poller. More...
 
void NT_DestroyLoggerPoller (NT_LoggerPoller poller)
 Destroy a log poller. More...
 
NT_Logger NT_AddPolledLogger (NT_LoggerPoller poller, unsigned int min_level, unsigned int max_level)
 Set the log level for a log poller. More...
 
struct NT_LogMessageNT_PollLogger (NT_LoggerPoller poller, size_t *len)
 Get the next log event. More...
 
struct NT_LogMessageNT_PollLoggerTimeout (NT_LoggerPoller poller, size_t *len, double timeout, NT_Bool *timed_out)
 Get the next log event. More...
 
void NT_CancelPollLogger (NT_LoggerPoller poller)
 Cancel a PollLogger call. More...
 
void NT_RemoveLogger (NT_Logger logger)
 Remove a logger. More...
 
NT_Bool NT_WaitForLoggerQueue (NT_Inst inst, double timeout)
 Wait for the incoming log event queue to be empty. More...
 
NT_Logger nt::NetworkTableInstance::AddLogger (std::function< void(const LogMessage &msg)> func, unsigned int min_level, unsigned int max_level)
 Add logger callback function. More...
 
static void nt::NetworkTableInstance::RemoveLogger (NT_Logger logger)
 Remove a logger. More...
 
bool nt::NetworkTableInstance::WaitForLoggerQueue (double timeout)
 Wait for the incoming log event queue to be empty. More...
 
void nt::SetLogger (LogFunc func, unsigned int min_level)
 Set logger callback function. More...
 
NT_Logger nt::AddLogger (NT_Inst inst, std::function< void(const LogMessage &msg)> func, unsigned int min_level, unsigned int max_level)
 Add logger callback function. More...
 
NT_LoggerPoller nt::CreateLoggerPoller (NT_Inst inst)
 Create a log poller. More...
 
void nt::DestroyLoggerPoller (NT_LoggerPoller poller)
 Destroy a log poller. More...
 
NT_Logger nt::AddPolledLogger (NT_LoggerPoller poller, unsigned int min_level, unsigned int max_level)
 Set the log level for a log poller. More...
 
std::vector< LogMessage > nt::PollLogger (NT_LoggerPoller poller)
 Get the next log event. More...
 
std::vector< LogMessage > nt::PollLogger (NT_LoggerPoller poller, double timeout, bool *timed_out)
 Get the next log event. More...
 
void nt::CancelPollLogger (NT_LoggerPoller poller)
 Cancel a PollLogger call. More...
 
void nt::RemoveLogger (NT_Logger logger)
 Remove a logger. More...
 
bool nt::WaitForLoggerQueue (NT_Inst inst, double timeout)
 Wait for the incoming log event queue to be empty. More...
 

Detailed Description

Typedef Documentation

typedef std::function<void(unsigned int level, const char* file, unsigned int line, const char* msg)> nt::LogFunc

Log function.

Parameters
levellog level of the message (see NT_LogLevel)
fileorigin source filename
lineorigin source line number
msgmessage
typedef void(* NT_LogFunc) (void *data, const struct NT_LogMessage *msg)

Log function.

Parameters
datadata pointer passed to NT_AddLogger()
msgmessage information

Function Documentation

NT_Logger nt::NetworkTableInstance::AddLogger ( std::function< void(const LogMessage &msg)>  func,
unsigned int  min_level,
unsigned int  max_level 
)
inline

Add logger callback function.

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
funclog callback function
minLevelminimum log level
maxLevelmaximum log level
Returns
Logger handle
NT_Logger nt::AddLogger ( NT_Inst  inst,
std::function< void(const LogMessage &msg)>  func,
unsigned int  min_level,
unsigned int  max_level 
)

Add logger callback function.

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

Parameters
instinstance handle
funclog callback function
min_levelminimum log level
max_levelmaximum log level
Returns
Logger handle
NT_Logger nt::AddPolledLogger ( NT_LoggerPoller  poller,
unsigned int  min_level,
unsigned int  max_level 
)

Set the log level for a log poller.

Events will only be generated for log messages with level greater than or equal to min_level and less than or equal to max_level; messages outside this range will be silently ignored.

Parameters
pollerpoller handle
min_levelminimum log level
max_levelmaximum log level
Returns
Logger handle
void nt::CancelPollLogger ( NT_LoggerPoller  poller)

Cancel a PollLogger call.

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

Parameters
pollerpoller handle
NT_LoggerPoller nt::CreateLoggerPoller ( NT_Inst  inst)

Create a log poller.

A poller provides a single queue of poll events. The returned handle must be destroyed with DestroyLoggerPoller().

Parameters
instinstance handle
Returns
poller handle
void nt::DestroyLoggerPoller ( NT_LoggerPoller  poller)

Destroy a log poller.

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

Parameters
pollerpoller handle
NT_Logger NT_AddLogger ( NT_Inst  inst,
void *  data,
NT_LogFunc  func,
unsigned int  min_level,
unsigned int  max_level 
)

Add logger callback function.

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

Parameters
instinstance handle
datadata pointer to pass to func
funclog callback function
min_levelminimum log level
max_levelmaximum log level
Returns
Logger handle
NT_Logger NT_AddPolledLogger ( NT_LoggerPoller  poller,
unsigned int  min_level,
unsigned int  max_level 
)

Set the log level for a log poller.

Events will only be generated for log messages with level greater than or equal to min_level and less than or equal to max_level; messages outside this range will be silently ignored.

Parameters
pollerpoller handle
min_levelminimum log level
max_levelmaximum log level
Returns
Logger handle
void NT_CancelPollLogger ( NT_LoggerPoller  poller)

Cancel a PollLogger call.

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

Parameters
pollerpoller handle
NT_LoggerPoller NT_CreateLoggerPoller ( NT_Inst  inst)

Create a log poller.

A poller provides a single queue of poll events. The returned handle must be destroyed with NT_DestroyLoggerPoller().

Parameters
instinstance handle
Returns
poller handle
void NT_DestroyLoggerPoller ( NT_LoggerPoller  poller)

Destroy a log poller.

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

Parameters
pollerpoller handle
struct NT_LogMessage* NT_PollLogger ( NT_LoggerPoller  poller,
size_t *  len 
)

Get the next log event.

This blocks until the next log occurs.

Parameters
pollerpoller handle
lenlength of returned array (output)
Returns
Array of information on the log events. Only returns NULL if an error occurred (e.g. the instance was invalid or is shutting down).
struct NT_LogMessage* NT_PollLoggerTimeout ( NT_LoggerPoller  poller,
size_t *  len,
double  timeout,
NT_Bool *  timed_out 
)

Get the next log event.

This blocks until the next log occurs or it times out.

Parameters
pollerpoller handle
lenlength of returned array (output)
timeouttimeout, in seconds
timed_outtrue if the timeout period elapsed (output)
Returns
Array of information on the log events. If NULL is returned and timed_out is also false, an error occurred (e.g. the instance was invalid or is shutting down).
void NT_RemoveLogger ( NT_Logger  logger)

Remove a logger.

Parameters
loggerLogger handle to remove
NT_Bool NT_WaitForLoggerQueue ( NT_Inst  inst,
double  timeout 
)

Wait for the incoming log event queue to be empty.

This is primarily useful for deterministic testing. This blocks until either the log event 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.
std::vector< LogMessage > nt::PollLogger ( NT_LoggerPoller  poller)

Get the next log event.

This blocks until the next log occurs.

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

Get the next log event.

This blocks until the next log occurs or it times out.

Parameters
pollerpoller handle
timeouttimeout, in seconds
timed_outtrue if the timeout period elapsed (output)
Returns
Information on the log events. If empty is returned and timed_out is also false, an error occurred (e.g. the instance was invalid or is shutting down).
void nt::NetworkTableInstance::RemoveLogger ( NT_Logger  logger)
inlinestatic

Remove a logger.

Parameters
loggerLogger handle to remove
void nt::RemoveLogger ( NT_Logger  logger)

Remove a logger.

Parameters
loggerLogger handle to remove
void nt::SetLogger ( LogFunc  func,
unsigned int  min_level 
)

Set logger callback function.

By default, log messages are sent to stderr; this function changes the log level and sends log messages to the provided callback function instead. The callback function will only be called for log messages with level greater than or equal to min_level; messages lower than this level will be silently ignored.

Parameters
funclog callback function
min_levelminimum log level
bool nt::NetworkTableInstance::WaitForLoggerQueue ( double  timeout)
inline

Wait for the incoming log event queue to be empty.

This is primarily useful for deterministic testing. This blocks until either the log event 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.
bool nt::WaitForLoggerQueue ( NT_Inst  inst,
double  timeout 
)

Wait for the incoming log event queue to be empty.

This is primarily useful for deterministic testing. This blocks until either the log event 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.