1 #ifndef MHO_StationIdentifier_HH__
2 #define MHO_StationIdentifier_HH__
40 bool name_present = (fCode2Name.find(name) != fCode2Name.end());
41 bool code_present = (fCode2Name.find(code) != fCode2Name.end());
42 bool mk4id_present = (fCode2Name.find(mk4id) != fCode2Name.end());
44 if(!name_present && (code_present || mk4id_present))
46 msg_warn(
"utilities",
"station: " << name <<
" shares a code or mk4id with another station" << eom);
50 if(!name_present && !code_present && !mk4id_present)
52 msg_debug(
"utilities",
"inserting station identity: " << station_identity.
as_string() << eom);
53 fCode2Name[name] = name;
54 fCode2Name[code] = name;
55 fCode2Name[mk4id] = name;
56 fName2Code[name] = code;
57 fName2Mk4ID[name] = mk4id;
58 fStationIds.push_back(station_identity);
64 int Insert(
const std::string& name,
const std::string& code,
const std::string& mk4id)
67 tmp.
SetAll(name, code, mk4id);
73 auto it = fCode2Name.find(code);
74 if(it != fCode2Name.end())
80 msg_warn(
"utilities",
"cannot locate cannonical station name for: <" << code <<
">" << eom);
87 auto it = fName2Mk4ID.find(name);
88 if(it != fName2Mk4ID.end())
94 msg_warn(
"utilities",
"cannot locate mk4 id from cannonical station name: <" << name <<
">" << eom);
101 auto it = fName2Code.find(name);
102 if(it != fName2Code.end())
108 msg_warn(
"utilities",
"cannot locate station code from cannonical station name: <" << name <<
">" << eom);
118 std::vector< MHO_StationIdentity > fStationIds;
119 std::set< std::string > fCodeSet;
120 std::map< std::string, std::string > fCode2Name;
121 std::map< std::string, std::string > fName2Code;
122 std::map< std::string, std::string > fName2Mk4ID;
#define msg_debug(xKEY, xCONTENT)
Definition: MHO_Message.hh:291
#define msg_warn(xKEY, xCONTENT)
Definition: MHO_Message.hh:248
Class MHO_StationIdentifier Handles the mapping of two character and one character mk4ids to station ...
Definition: MHO_StationIdentifier.hh:25
int Insert(const std::string &name, const std::string &code, const std::string &mk4id)
Definition: MHO_StationIdentifier.hh:64
std::string StationCodeFromName(std::string name) const
Definition: MHO_StationIdentifier.hh:99
static MHO_StationIdentifier & GetInstance()
Getter for singleton instance (thread-safe, C++11 function-local static)
Definition: MHO_StationIdentifier.cc:15
std::string StationMk4IDFromName(std::string name) const
Definition: MHO_StationIdentifier.hh:85
std::string CanonicalStationName(std::string code) const
Definition: MHO_StationIdentifier.hh:71
int Insert(MHO_StationIdentity station_identity)
Definition: MHO_StationIdentifier.hh:34
Class MHO_StationIdentity - a class to store, associate, and compare 1-char, 2-char,...
Definition: MHO_StationIdentity.hh:29
std::string GetStationMk4Id() const
Definition: MHO_StationIdentity.hh:161
std::string GetStationCode() const
Definition: MHO_StationIdentity.hh:157
std::string GetStationName() const
Definition: MHO_StationIdentity.hh:153
void SetAll(const std::string &name, const std::string &code, const std::string &mk4id)
Definition: MHO_StationIdentity.hh:163
std::string as_string() const
Definition: MHO_StationIdentity.hh:107
Definition: MHO_AdhocFlagging.hh:18