WPILibC++  2019.2.1-4-g05d6660
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
Logger Functions

Typedefs

typedef void(* NT_LogFunc )(void *data, const struct NT_LogMessage *msg)
 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...
 

Detailed Description

Typedef Documentation

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_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.