blob: cacc2b32da56aa69d1dfdf22f823444c74584b9d [file] [log] [blame]
John Park33858a32018-09-28 23:05:48 -07001#ifndef AOS_NETWORK_TEAM_NUMBER_H_
2#define AOS_NETWORK_TEAM_NUMBER_H_
Brian Silverman431500a2013-10-28 19:50:15 -07003
4#include <stdint.h>
5
Austin Schuhdf5591e2015-12-19 22:36:50 -08006#include <string>
7
Brian Silverman431500a2013-10-28 19:50:15 -07008namespace aos {
9namespace network {
10
11// Retrieves the current team number based off of the network address.
12// This function will only do the complicated stuff once so it is cheap to call
13// repeatedly.
14uint16_t GetTeamNumber();
15
Austin Schuh288479d2019-12-18 19:47:52 -080016// Returns the current hostname.
17::std::string GetHostname();
18
Brian Silvermande0a53a2014-02-10 22:27:44 -080019// Overrides the team number returned from GetTeamNumber(). Must be called
20// before GetTeamNumber() is ever called.
21// Overriding to team 0 won't work.
22// Intended only for tests.
Philipp Schraderf75a8bf2015-02-02 05:30:16 +000023// Guaranteed to be safe to call during static initialization time.
Brian Silvermande0a53a2014-02-10 22:27:44 -080024void OverrideTeamNumber(uint16_t team);
25
Austin Schuhdf5591e2015-12-19 22:36:50 -080026namespace internal {
27int ParseTeamNumber(const std::string &hostname, uint16_t *teamnumber);
28} // namespace internal
Brian Silverman431500a2013-10-28 19:50:15 -070029} // namespace network
30} // namespace aos
31
John Park33858a32018-09-28 23:05:48 -070032#endif // AOS_NETWORK_TEAM_NUMBER_H_