16 #include "llvm/ArrayRef.h" 17 #include "llvm/StringRef.h" 19 #include "networktables/NetworkTable.h" 20 #include "networktables/NetworkTableEntry.h" 22 #include "ntcore_cpp.h" 27 #define NT_NOEXCEPT noexcept 29 #define NT_NOEXCEPT throw() 32 #define NT_NOEXCEPT noexcept 66 kNetModeNone = NT_NET_MODE_NONE,
67 kNetModeServer = NT_NET_MODE_SERVER,
68 kNetModeClient = NT_NET_MODE_CLIENT,
69 kNetModeStarting = NT_NET_MODE_STARTING,
70 kNetModeFailure = NT_NET_MODE_FAILURE
77 kLogCritical = NT_LOG_CRITICAL,
78 kLogError = NT_LOG_ERROR,
79 kLogWarning = NT_LOG_WARNING,
80 kLogInfo = NT_LOG_INFO,
81 kLogDebug = NT_LOG_DEBUG,
82 kLogDebug1 = NT_LOG_DEBUG1,
83 kLogDebug2 = NT_LOG_DEBUG2,
84 kLogDebug3 = NT_LOG_DEBUG3,
85 kLogDebug4 = NT_LOG_DEBUG4
91 enum { kDefaultPort = NT_DEFAULT_PORT };
108 explicit operator bool()
const {
return m_handle != 0; }
165 unsigned int types)
const;
197 unsigned int flags)
const;
232 bool immediate_notify)
const;
300 const char* listen_address =
"",
301 unsigned int port = kDefaultPort);
319 void StartClient(
const char* server_name,
unsigned int port = kDefaultPort);
337 unsigned int port = kDefaultPort);
346 void StartClientTeam(
unsigned int team,
unsigned int port = kDefaultPort);
359 void SetServer(
const char* server_name,
unsigned int port = kDefaultPort);
385 void SetServerTeam(
unsigned int team,
unsigned int port = kDefaultPort);
456 std::function<
void(
size_t line,
const char* msg)> warn);
477 std::function<
void(
size_t line,
const char* msg)> warn);
499 unsigned int min_level,
unsigned int max_level);
525 return m_handle == other.m_handle;
530 return !(*
this == other);
540 #include "networktables/NetworkTableInstance.inl" 542 #endif // NT_INSTANCE_H_ bool WaitForConnectionListenerQueue(double timeout)
Wait for the connection listener queue to be empty.
Definition: NetworkTableInstance.inl:67
bool operator==(const NetworkTableInstance &other) const
Equality operator.
Definition: NetworkTableInstance.h:524
const char * LoadEntries(StringRef filename, StringRef prefix, std::function< void(size_t line, const char *msg)> warn)
Load table values from a file.
Definition: NetworkTableInstance.inl:165
std::vector< ConnectionInfo > GetConnections() const
Get information on the currently established network connections.
Definition: NetworkTableInstance.inl:140
std::vector< EntryInfo > GetEntryInfo(StringRef prefix, unsigned int types) const
Get information about entries starting with the given prefix.
Definition: NetworkTableInstance.inl:44
void SetServerTeam(unsigned int team, unsigned int port=kDefaultPort)
Sets server addresses and port for client (without restarting client).
Definition: NetworkTableInstance.inl:121
void DeleteAllEntries()
Deletes ALL keys in ALL subtables (except persistent values).
Definition: NetworkTableInstance.inl:49
bool WaitForRpcCallQueue(double timeout)
Wait for the incoming RPC call queue to be empty.
Definition: NetworkTableInstance.inl:72
NetworkTables log message.
Definition: ntcore_cpp.h:232
void StopDSClient()
Stops requesting server address from Driver Station.
Definition: NetworkTableInstance.inl:130
bool WaitForEntryListenerQueue(double timeout)
Wait for the entry listener queue to be empty.
Definition: NetworkTableInstance.inl:58
void SetUpdateRate(double interval)
Set the periodic update rate.
Definition: NetworkTableInstance.inl:134
NetworkTables Entry Notification.
Definition: ntcore_cpp.h:165
static NetworkTableInstance GetDefault()
Get global default instance.
Definition: NetworkTableInstance.inl:18
void StartClientTeam(unsigned int team, unsigned int port=kDefaultPort)
Starts a client using commonly known robot addresses for the specified team.
Definition: NetworkTableInstance.inl:104
void StartDSClient(unsigned int port=kDefaultPort)
Starts requesting server address from Driver Station.
Definition: NetworkTableInstance.inl:126
void StopClient()
Stops the client if it is running.
Definition: NetworkTableInstance.inl:109
const char * LoadPersistent(StringRef filename, std::function< void(size_t line, const char *msg)> warn)
Load persistent values from a file.
Definition: NetworkTableInstance.inl:154
NetworkMode
Client/server mode flag values (as returned by GetNetworkMode()).
Definition: NetworkTableInstance.h:65
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory)...
Definition: ArrayRef.h:32
NetworkTables Instance.
Definition: NetworkTableInstance.h:59
bool operator!=(const NetworkTableInstance &other) const
Inequality operator.
Definition: NetworkTableInstance.h:529
static void RemoveEntryListener(NT_EntryListener entry_listener)
Remove an entry listener.
Definition: NetworkTableInstance.inl:53
NetworkTableInstance() NT_NOEXCEPT
Construct invalid instance.
Definition: NetworkTableInstance.inl:13
std::vector< NetworkTableEntry > GetEntries(StringRef prefix, unsigned int types)
Get entries starting with the given prefix.
Definition: NetworkTableInstance.inl:36
NetworkTableEntry GetEntry(StringRef name)
Gets the entry for a key.
Definition: NetworkTableInstance.inl:32
const char * SavePersistent(StringRef filename) const
Save persistent values to a file.
Definition: NetworkTableInstance.inl:149
void SetServer(const char *server_name, unsigned int port=kDefaultPort)
Sets server address and port for client (without restarting client).
Definition: NetworkTableInstance.inl:111
Definition: IEntryNotifier.h:15
static NetworkTableInstance Create()
Create an instance.
Definition: NetworkTableInstance.inl:22
LogLevel
Logging levels (as used by SetLogger()).
Definition: NetworkTableInstance.h:76
NT_Inst GetHandle() const
Gets the native handle for the entry.
Definition: NetworkTableInstance.inl:30
NT_EntryListener AddEntryListener(StringRef prefix, std::function< void(const EntryNotification &event)> callback, unsigned int flags) const
Add a listener for all entries starting with a certain prefix.
Definition: NetworkTableInstance.cpp:43
bool IsConnected() const
Return whether or not the instance is connected to another node.
Definition: NetworkTableInstance.inl:145
NetworkTables Connection Notification.
Definition: ntcore_cpp.h:206
std::shared_ptr< NetworkTable > GetTable(StringRef key) const
Gets the table with the specified key.
Definition: NetworkTableInstance.cpp:13
static void RemoveConnectionListener(NT_ConnectionListener conn_listener)
Remove a connection listener.
Definition: NetworkTableInstance.inl:62
NT_Logger AddLogger(std::function< void(const LogMessage &msg)> func, unsigned int min_level, unsigned int max_level)
Add logger callback function.
Definition: NetworkTableInstance.inl:171
void StartServer(StringRef persist_filename="networktables.ini", const char *listen_address="", unsigned int port=kDefaultPort)
Starts a server using the specified filename, listening address, and port.
Definition: NetworkTableInstance.inl:84
static void RemoveLogger(NT_Logger logger)
Remove a logger.
Definition: NetworkTableInstance.inl:177
const char * SaveEntries(StringRef filename, StringRef prefix) const
Save table values to a file.
Definition: NetworkTableInstance.inl:160
NT_ConnectionListener AddConnectionListener(std::function< void(const ConnectionNotification &event)> callback, bool immediate_notify) const
Add a connection listener.
Definition: NetworkTableInstance.cpp:50
void SetNetworkIdentity(StringRef name)
Set the network identity of this node.
Definition: NetworkTableInstance.inl:76
unsigned int GetNetworkMode() const
Get the current network mode.
Definition: NetworkTableInstance.inl:80
NetworkTables Entry.
Definition: NetworkTableEntry.h:30
static void Destroy(NetworkTableInstance inst)
Destroys an instance (note: this has global effect).
Definition: NetworkTableInstance.inl:26
void StartClient()
Starts a client.
Definition: NetworkTableInstance.inl:92
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:42
void Flush() const
Flushes all updated values immediately to the network.
Definition: NetworkTableInstance.inl:138
void StopServer()
Stops the server if it is running.
Definition: NetworkTableInstance.inl:90
bool WaitForLoggerQueue(double timeout)
Wait for the incoming log event queue to be empty.
Definition: NetworkTableInstance.inl:181