Clean up and modernize //aos/network
Change-Id: Iadc1ff1eb7156a350403fdfb7cab684e38a69029
diff --git a/aos/network/BUILD b/aos/network/BUILD
index 11eebdb..d915404 100644
--- a/aos/network/BUILD
+++ b/aos/network/BUILD
@@ -41,9 +41,8 @@
"team_number.h",
],
deps = [
- "//aos/logging",
"//aos/util:string_to_num",
- "@com_google_absl//absl/base",
+ "@com_github_google_glog//:glog",
],
)
@@ -240,11 +239,11 @@
flatbuffer_cc_library(
name = "web_proxy_fbs",
srcs = ["web_proxy.fbs"],
+ gen_reflections = True,
includes = [
":connect_fbs_includes",
"//aos:configuration_fbs_includes",
],
- gen_reflections = True,
)
flatbuffer_ts_library(
@@ -258,8 +257,8 @@
cc_library(
name = "web_proxy_utils",
- hdrs = ["web_proxy_utils.h"],
srcs = ["web_proxy_utils.cc"],
+ hdrs = ["web_proxy_utils.h"],
deps = [
":connect_fbs",
":web_proxy_fbs",
@@ -300,25 +299,25 @@
cc_binary(
name = "web_proxy_main",
srcs = ["web_proxy_main.cc"],
- deps = [
- ":gen_embedded",
- ":web_proxy",
- "//aos/events:shm_event_loop",
- "//aos:init",
- "//aos/seasocks:seasocks_logger",
- "//third_party/seasocks",
- "@com_github_google_flatbuffers//:flatbuffers"
- ],
copts = [
"-DWEBRTC_POSIX",
"-Wno-unused-parameter",
],
data = [
- "//aos/network/www:files",
- "//aos/network/www:main_bundle",
- "//aos/network/www:flatbuffers",
- "@com_github_google_flatbuffers//:flatjs",
"//aos/events:pingpong_config.json",
+ "//aos/network/www:files",
+ "//aos/network/www:flatbuffers",
+ "//aos/network/www:main_bundle",
+ "@com_github_google_flatbuffers//:flatjs",
+ ],
+ deps = [
+ ":gen_embedded",
+ ":web_proxy",
+ "//aos:init",
+ "//aos/events:shm_event_loop",
+ "//aos/seasocks:seasocks_logger",
+ "//third_party/seasocks",
+ "@com_github_google_flatbuffers//:flatbuffers",
],
)
diff --git a/aos/network/team_number.cc b/aos/network/team_number.cc
index 1b90079..b031299 100644
--- a/aos/network/team_number.cc
+++ b/aos/network/team_number.cc
@@ -5,16 +5,15 @@
#include <unistd.h>
#include <stdlib.h>
-#include <string>
+#include "glog/logging.h"
-#include "absl/base/call_once.h"
-#include "aos/logging/logging.h"
#include "aos/util/string_to_num.h"
namespace aos {
namespace network {
-namespace internal {
-int ParseTeamNumber(const std::string &hostname, uint16_t *teamnumber) {
+namespace team_number_internal {
+
+std::optional<uint16_t> ParseRoborioTeamNumber(const std::string &hostname) {
for (size_t i = 0; i < hostname.size(); i++) {
if (hostname[i] == '-') {
const std::string num_as_s =
@@ -24,45 +23,49 @@
int num;
if (!::aos::util::StringToNumber(num_as_s, &num)) {
- return -1;
+ return std::nullopt;
}
if (hostname.substr(0, i) == "roboRIO" &&
std::to_string(num) == num_as_s) {
- *teamnumber = num;
- return 0;
- } else {
- return -1;
+ return num;
}
+ return std::nullopt;
}
}
- return -1;
+ return std::nullopt;
}
-} // namespace internal
+
+} // namespace team_number_internal
namespace {
uint16_t override_team;
-void DoGetTeamNumber(uint16_t *result) {
+uint16_t DoGetTeamNumber() {
if (override_team != 0) {
- *result = override_team;
- return;
+ return override_team;
}
const char *override_number = getenv("AOS_TEAM_NUMBER");
if (override_number != nullptr) {
- if (!::aos::util::StringToNumber(override_number, result)) {
- AOS_LOG(FATAL, "error parsing AOS_TEAM_NUMBER '%s'\n", override_number);
+ uint16_t result;
+ if (!::aos::util::StringToNumber(override_number, &result)) {
+ LOG(FATAL) << "Error parsing AOS_TEAM_NUMBER: " << override_number;
}
- AOS_LOG(WARNING,
- "team number overridden by AOS_TEAM_NUMBER to %" PRIu16 "\n", *result);
- } else {
- int error = internal::ParseTeamNumber(GetHostname(), result);
- if (error) {
- AOS_LOG(FATAL, "Invalid hostname %s\n", GetHostname().c_str());
- }
- AOS_LOG(INFO, "team number is %" PRIu16 "\n", *result);
+ LOG(WARNING)
+ << "Team number overriden by AOS_TEAM_NUMBER environment variable to "
+ << result;
+ return result;
}
+ const auto hostname = GetHostname();
+ {
+ const auto result = team_number_internal::ParseRoborioTeamNumber(hostname);
+ if (result) {
+ LOG(INFO) << "roboRIO hostname team number is: " << *result;
+ return *result;
+ }
+ }
+ LOG(FATAL) << "Failed to parse a team number from hostname: " << hostname;
}
} // namespace
@@ -70,14 +73,12 @@
::std::string GetHostname() {
char buf[256];
buf[sizeof(buf) - 1] = '\0';
- AOS_PCHECK(gethostname(buf, sizeof(buf) - 1));
+ PCHECK(gethostname(buf, sizeof(buf) - 1) == 0);
return buf;
}
uint16_t GetTeamNumber() {
- static absl::once_flag once;
- static uint16_t result;
- absl::call_once(once, DoGetTeamNumber, &result);
+ const static uint16_t result = DoGetTeamNumber();
return result;
}
diff --git a/aos/network/team_number.h b/aos/network/team_number.h
index cacc2b3..6eb1335 100644
--- a/aos/network/team_number.h
+++ b/aos/network/team_number.h
@@ -3,6 +3,7 @@
#include <stdint.h>
+#include <optional>
#include <string>
namespace aos {
@@ -23,9 +24,11 @@
// Guaranteed to be safe to call during static initialization time.
void OverrideTeamNumber(uint16_t team);
-namespace internal {
-int ParseTeamNumber(const std::string &hostname, uint16_t *teamnumber);
-} // namespace internal
+namespace team_number_internal {
+
+std::optional<uint16_t> ParseRoborioTeamNumber(const std::string &hostname);
+
+} // namespace team_number_internal
} // namespace network
} // namespace aos
diff --git a/aos/network/team_number_test.cc b/aos/network/team_number_test.cc
index ee3f2db..03001de 100644
--- a/aos/network/team_number_test.cc
+++ b/aos/network/team_number_test.cc
@@ -2,32 +2,33 @@
#include "gtest/gtest.h"
-#include "aos/macros.h"
-
namespace aos {
namespace network {
-namespace internal {
namespace testing {
-TEST(TeamNumberTest, Parse2015TeamNumber) {
- uint16_t team_number;
- EXPECT_EQ(0, ParseTeamNumber("roboRIO-971", &team_number));
- EXPECT_EQ(971u, team_number);
+using team_number_internal::ParseRoborioTeamNumber;
- EXPECT_EQ(0, ParseTeamNumber("roboRIO-8971", &team_number));
- EXPECT_EQ(8971u, team_number);
+TEST(TeamNumberTest, Parse2015TeamNumber) {
+ EXPECT_EQ(971u, *ParseRoborioTeamNumber("roboRIO-971"));
+
+ EXPECT_EQ(8971u, ParseRoborioTeamNumber("roboRIO-8971"));
+
+ EXPECT_FALSE(ParseRoborioTeamNumber("abc"));
+ EXPECT_FALSE(ParseRoborioTeamNumber("roboRIO-8abc"));
+ EXPECT_FALSE(ParseRoborioTeamNumber("roboRIO-"));
}
TEST(TeamNumberTest, Parse2016TeamNumber) {
- uint16_t team_number;
- EXPECT_EQ(0, ParseTeamNumber("roboRIO-971-FRC", &team_number));
- EXPECT_EQ(971u, team_number);
+ EXPECT_EQ(971u, *ParseRoborioTeamNumber("roboRIO-971-FRC"));
- EXPECT_EQ(0, ParseTeamNumber("roboRIO-8971-FRC", &team_number));
- EXPECT_EQ(8971u, team_number);
+ EXPECT_EQ(8971u, *ParseRoborioTeamNumber("roboRIO-8971-FRC"));
+
+ EXPECT_FALSE(ParseRoborioTeamNumber("roboRIO-8abc-FRC"));
+ EXPECT_FALSE(ParseRoborioTeamNumber("roboRIO-8971-FRC2"));
+ EXPECT_FALSE(ParseRoborioTeamNumber("roboRIO-8971-2FRC"));
+ EXPECT_FALSE(ParseRoborioTeamNumber("roboRIO--FRC"));
}
} // namespace testing
-} // namespace internal
} // namespace network
} // namespace aos