4 #include <cdet/CStationListXMLManager.h>
5 #include <utl/ErrorLogger.h>
6 #include <utl/Reader.h>
7 #include <cdet/CManagerRegister.h>
26 if (cB.GetName() ==
"station") {
30 station.
fId = FindComponent<int>(
"id", cB.GetAttributes());
32 cB.GetChild(
"northing").GetData(station.
fNorthing);
33 cB.GetChild(
"easting").GetData(station.
fEasting);
34 cB.GetChild(
"altitude").GetData(station.
fAltitude);
35 station.
fName = cB.GetChild(
"name").GetDataString();
61 vector<int> rawInGrid;
62 cB.GetChild(
"inGrid").GetData(rawInGrid);
63 station.
fInGrid = vector<bool>(*max_element(rawInGrid.begin(),rawInGrid.end()));
64 for (
size_t i = 0; i < rawInGrid.size(); ++i)
67 const int index = rawInGrid[i]-1;
68 if (index<0)
continue;
71 cB.GetChild(
"groupId").GetData(station.
fGroupId);
74 cB.GetChild(
"axes").GetData(axes);
75 station.
fAxis1 = axes.at(0);
76 station.
fAxis2 = axes.at(1);
78 cB.GetChild(
"ellipsoid").GetData(station.
fEllipsoid);
79 cB.GetChild(
"zone").GetData(station.
fZone);
80 cB.GetChild(
"band").GetData(station.
fBand);
83 fStationManager.ConditionalAddStationData(station);
87 err <<
"multiple instances of station id=" << station.
fId
88 <<
" found in XML configuration";
std::string fCommissionTime
void Init()
Initialise the registry.
Exception for errors encountered when parsing XML.
Branch GetNextSibling() const
Get next sibling of this branch.
Class representing a document branch.
REGISTER_C_MANAGER("CStationListXMLManager", CStationListXMLManager)
std::string fDecommissionTime
std::vector< bool > fInGrid
Branch GetFirstChild() const
Get first child of this Branch.
#define ERROR(message)
Macro for logging error messages.
Manager for MARTA description in XML station lists.