8#ifndef PANDORA_XML_HELPER_H
9#define PANDORA_XML_HELPER_H 1
59 std::vector< std::vector<T> > &vector);
70 std::string &algorithmName);
141 return STATUS_CODE_NOT_FOUND;
144 return STATUS_CODE_FAILURE;
146 return STATUS_CODE_SUCCESS;
155 return STATUS_CODE_NOT_FOUND;
160 if (tokens.size() != 3)
161 return STATUS_CODE_FAILURE;
163 float x(0.f), y(0.f), z(0.f);
166 return STATUS_CODE_FAILURE;
170 return STATUS_CODE_SUCCESS;
179 return STATUS_CODE_NOT_FOUND;
184 if (tokens.size() != 6)
185 return STATUS_CODE_FAILURE;
187 float x(0.f), y(0.f), z(0.f), px(0.f), py(0.f), pz(0.f);
192 return STATUS_CODE_FAILURE;
197 return STATUS_CODE_SUCCESS;
201inline StatusCode XmlHelper::ReadValue<bool>(
const TiXmlHandle &xmlHandle,
const std::string &xmlElementName,
bool &t)
206 return STATUS_CODE_NOT_FOUND;
208 const std::string xmlElementString = pXmlElement->
GetText();
210 if ((xmlElementString ==
"1") || (xmlElementString ==
"true"))
214 else if ((xmlElementString ==
"0") || (xmlElementString ==
"false"))
220 return STATUS_CODE_FAILURE;
223 return STATUS_CODE_SUCCESS;
234 return STATUS_CODE_NOT_FOUND;
239 for (
const std::string &token : tokens)
244 return STATUS_CODE_FAILURE;
249 return STATUS_CODE_SUCCESS;
256 std::vector< std::vector<T> > &vector)
261 return STATUS_CODE_NOT_FOUND;
266 return STATUS_CODE_NOT_FOUND;
268 for ( ;
nullptr != pXmlRowElement; pXmlRowElement = pXmlRowElement->
NextSiblingElement(rowName))
270 std::vector<T> rowVector;
275 for (
const std::string &token : tokens)
280 return STATUS_CODE_FAILURE;
282 rowVector.push_back(t);
285 vector.push_back(rowVector);
288 return STATUS_CODE_SUCCESS;
295 const std::string emptyDescription;
303 const std::string emptyDescription;
Header file for the cartesian vector class.
Header file defining relevant internal typedefs, sort and string conversion functions.
Header file defining status codes and relevant preprocessor macros.
Header file for the track state class.
Algorithm class. Algorithm addresses are held only by the algorithm manager. They have a fully define...
const char * GetText() const
TiXmlElement * Element() const
TiXmlHandle FirstChild() const
Return a handle to the first child node.
const TiXmlElement * NextSiblingElement() const
static StatusCode ProcessAlgorithm(const Algorithm &algorithm, const TiXmlHandle &xmlHandle, const std::string &description, std::string &algorithmName)
Process an algorithm described in an xml element with a matching "description = .....
static void TokenizeString(const std::string &inputString, StringVector &tokens, const std::string &delimiter=" ")
Tokenize a string.
static StatusCode ReadVectorOfValues(const TiXmlHandle &xmlHandle, const std::string &xmlElementName, std::vector< T > &vector)
Read a vector of values from a (space separated) list in an xml element.
static StatusCode Read2DVectorOfValues(const TiXmlHandle &xmlHandle, const std::string &xmlElementName, const std::string &rowName, std::vector< std::vector< T > > &vector)
Read a two-dimensional array of values into a vector of vectors. Each row of values must be contained...
static StatusCode ReadValue(const TiXmlHandle &xmlHandle, const std::string &xmlElementName, T &t)
Read a value from an xml element.
static StatusCode ProcessAlgorithmToolList(const Algorithm &algorithm, const TiXmlHandle &xmlHandle, const std::string &listName, AlgorithmToolVector &algorithmToolVector)
Process a list of algorithms tools in an xml file.
static StatusCode ProcessFirstAlgorithm(const Algorithm &algorithm, const TiXmlHandle &xmlHandle, std::string &algorithmName)
Process a single algorithm described in an xml file (the first found by the xml handle)
static StatusCode ProcessAlgorithmTool(const Algorithm &algorithm, const TiXmlHandle &xmlHandle, const std::string &description, AlgorithmTool *&pAlgorithmTool)
Process an algorithm tool described in an xml element with a matching "description = ....
static StatusCode ProcessAlgorithmList(const Algorithm &algorithm, const TiXmlHandle &xmlHandle, const std::string &listName, StringVector &algorithmNames)
Process a list of daughter algorithms in an xml file.
static StatusCode ProcessFirstAlgorithmTool(const Algorithm &algorithm, const TiXmlHandle &xmlHandle, AlgorithmTool *&pAlgorithmTool)
Process a single algorithm tool described in an xml file (the first found by the xml handle)
bool StringToType(const std::string &s, T &t)
std::vector< std::string > StringVector
std::vector< AlgorithmTool * > AlgorithmToolVector
StatusCode
The StatusCode enum.