From 90ce262bb302bf5caa7a5945a8d955a6ee8fb3f5 Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Sat, 19 Sep 2015 11:44:14 -0700 Subject: [PATCH] C++ NetworkTable: Provide SetPort() method. This was previously only available in Java. --- include/networktables/NetworkTable.h | 7 +++++++ src/networktables/NetworkTable.cpp | 7 +++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/include/networktables/NetworkTable.h b/include/networktables/NetworkTable.h index b14dcd6458..76309f7a9f 100644 --- a/include/networktables/NetworkTable.h +++ b/include/networktables/NetworkTable.h @@ -20,6 +20,7 @@ class NetworkTable : public ITable { static std::string s_persistent_filename; static bool s_client; static bool s_running; + static unsigned int s_port; public: NetworkTable(llvm::StringRef path, const private_init&); @@ -63,6 +64,12 @@ class NetworkTable : public ITable { */ static void SetIPAddress(llvm::StringRef address); + /** + * @param port the port number that network tables will connect to in client + * mode or listen to in server mode + */ + static void SetPort(unsigned int port); + /** * Sets the persistent filename. * @param filename the filename that the network tables server uses for diff --git a/src/networktables/NetworkTable.cpp b/src/networktables/NetworkTable.cpp index 94ef4c9202..ddfa0c928e 100644 --- a/src/networktables/NetworkTable.cpp +++ b/src/networktables/NetworkTable.cpp @@ -13,13 +13,14 @@ std::string NetworkTable::s_ip_address; std::string NetworkTable::s_persistent_filename = "networktables.ini"; bool NetworkTable::s_client = false; bool NetworkTable::s_running = false; +unsigned int NetworkTable::s_port = NT_DEFAULT_PORT; void NetworkTable::Initialize() { if (s_running) Shutdown(); if (s_client) - nt::StartClient(s_ip_address.c_str(), NT_DEFAULT_PORT); + nt::StartClient(s_ip_address.c_str(), s_port); else - nt::StartServer(s_persistent_filename, "", NT_DEFAULT_PORT); + nt::StartServer(s_persistent_filename, "", s_port); s_running = true; } @@ -48,6 +49,8 @@ void NetworkTable::SetTeam(int team) { void NetworkTable::SetIPAddress(StringRef address) { s_ip_address = address; } +void NetworkTable::SetPort(unsigned int port) { s_port = port; } + void NetworkTable::SetPersistentFilename(StringRef filename) { s_persistent_filename = filename; }