HOPS
HOPS class reference
MHO_StationCodeMap.hh
Go to the documentation of this file.
1 #ifndef MHO_StationCodeMap_HH__
2 #define MHO_StationCodeMap_HH__
3 
4 #include <map>
5 #include <set>
6 #include <stack>
7 #include <string>
8 
9 #include "MHO_Message.hh"
10 #include "MHO_Tokenizer.hh"
11 
12 namespace hops
13 {
14 
27 {
28  public:
29  MHO_StationCodeMap(bool use_legacy_default_codes = false);
30  virtual ~MHO_StationCodeMap();
31 
35  void UseLegacyCodes() { fUseLegacyCodes = true; }
36 
42  void InitializeStationCodes(std::string station_codes_file = "");
43 
50  std::string GetStationCodeFromMk4Id(std::string mk4id);
57  std::string GetMk4IdFromStationCode(std::string station_code);
58 
64  std::vector< std::string > GetAllMk4Ids();
70  std::vector< std::string > GetAllStationCodes();
71 
72  private:
76  void Initialize();
82  bool TokensAreValid();
83 
87  void ProcessLine();
88 
95  void InsertPair(std::string station_code, std::string mk4id);
96 
103  std::string ToUpperCase(std::string token); //AA
104 
111  std::string ToLowerCase(std::string token); //aa
112 
119  std::string ToCanonicalCase(std::string token); //Aa
120 
121  bool fUseLegacyCodes;
125  void AddLegacyCodeMap();
126 
127  std::string fFile;
128  std::string fLine;
129  MHO_Tokenizer fTokenizer;
130  std::vector< std::string > fTokens;
131 
132  std::set< std::string > fStationCodes;
133  std::set< std::string > fMk4Ids;
134  std::set< std::string > fFreeMk4Ids;
135 
136  std::map< std::string, std::string > fMk4Id2CodeMap; // 1 char to 2 char
137  std::map< std::string, std::string > fCode2Mk4IdMap; // 2 char to 1 char
138 };
139 
140 } // namespace hops
141 
142 #endif
Class MHO_StationCodeMap Handles the mapping of two character and one character station representatio...
Definition: MHO_StationCodeMap.hh:27
void InitializeStationCodes(std::string station_codes_file="")
Initializes station codes by reading from a file and optionally using legacy codes.
Definition: MHO_StationCodeMap.cc:17
void UseLegacyCodes()
Sets legacy codes usage flag to true.
Definition: MHO_StationCodeMap.hh:35
std::string GetMk4IdFromStationCode(std::string station_code)
Getter for mk4id from station code.
Definition: MHO_StationCodeMap.cc:125
std::vector< std::string > GetAllMk4Ids()
Getter for all mk4ids.
Definition: MHO_StationCodeMap.cc:264
virtual ~MHO_StationCodeMap()
Definition: MHO_StationCodeMap.cc:15
MHO_StationCodeMap(bool use_legacy_default_codes=false)
Definition: MHO_StationCodeMap.cc:9
std::string GetStationCodeFromMk4Id(std::string mk4id)
Getter for station code from mk4id.
Definition: MHO_StationCodeMap.cc:114
std::vector< std::string > GetAllStationCodes()
Getter for all station codes.
Definition: MHO_StationCodeMap.cc:274
Class MHO_Tokenizer.
Definition: MHO_Tokenizer.hh:24
Definition: MHO_ChannelLabeler.hh:17