ETISS 0.11.2
ExtendableTranslatingInstructionSetSimulator(version0.11.2)
Loading...
Searching...
No Matches
Functions
etiss::fault::xml Namespace Reference

Functions

static bool getAttribute (const pugi::xml_node &node, const std::string &attr_name, std::string &dst, Diagnostics &diag)
 Parser/writer structure:
 
static bool setAttribute (pugi::xml_node &node, const std::string &attr_name, const std::string &src, Diagnostics &diag)
 
static bool getAttribute (const pugi::xml_node &node, const std::string &attr_name, int32_t &dst, Diagnostics &diag)
 
static bool setAttribute (pugi::xml_node &node, const std::string &attr_name, const int32_t &src, Diagnostics &diag)
 
template<>
bool parse< std::vector< etiss::fault::Fault > > (pugi::xml_node node, std::vector< etiss::fault::Fault > &dst, Diagnostics &diag)
 
template<>
bool write< std::vector< etiss::fault::Fault > > (pugi::xml_node node, const std::vector< etiss::fault::Fault > &src, Diagnostics &diag)
 
template<>
bool parse< std::vector< etiss::fault::FaultRef > > (pugi::xml_node node, std::vector< etiss::fault::FaultRef > &dst, Diagnostics &diag)
 
template<>
bool write< std::vector< etiss::fault::FaultRef > > (pugi::xml_node node, const std::vector< etiss::fault::FaultRef > &src, Diagnostics &diag)
 

Function Documentation

◆ getAttribute() [1/2]

static bool etiss::fault::xml::getAttribute ( const pugi::xml_node &  node,
const std::string &  attr_name,
int32_t dst,
Diagnostics &  diag 
)
static

TODO propper conversion

Definition at line 108 of file Fault.cpp.

References getAttribute().

Here is the call graph for this function:

◆ getAttribute() [2/2]

static bool etiss::fault::xml::getAttribute ( const pugi::xml_node &  node,
const std::string &  attr_name,
std::string &  dst,
Diagnostics &  diag 
)
static

Parser/writer structure:

class and field structure is closely modeled by the xml structure. each class is a node and each field is either a sub node or an attribute. This allows for a simple parsing concept. the template function parse() is implemented for each type that needs to be read and is called recursively for fields of different types. parsed values are written directly into the fields. This requires all fields to be public/accessible e.g.

C++:
class Fault {
class Trigger {
[...]
};
std::vector<Trigger> triggers;
const char * name;
};
XML:
<fault name="...">
<triggers>
<trigger>
[...]
</trigger>
</triggers>
</fault>
example parser recursion:
parse<Fault>(...)
parse<std::vector<Trigger> >(...)
parse<Trigger>(...)
[...]
getAttribute("name",...)
static bool getAttribute(const pugi::xml_node &node, const std::string &attr_name, std::string &dst, Diagnostics &diag)
Parser/writer structure:
Definition Fault.cpp:83
STL namespace.

Definition at line 83 of file Fault.cpp.

Referenced by getAttribute().

Here is the caller graph for this function:

◆ parse< std::vector< etiss::fault::Fault > >()

template<>
bool etiss::fault::xml::parse< std::vector< etiss::fault::Fault > > ( pugi::xml_node  node,
std::vector< etiss::fault::Fault > &  dst,
Diagnostics &  diag 
)

Definition at line 125 of file Fault.cpp.

References etiss::log(), and etiss::VERBOSE.

Here is the call graph for this function:

◆ parse< std::vector< etiss::fault::FaultRef > >()

template<>
bool etiss::fault::xml::parse< std::vector< etiss::fault::FaultRef > > ( pugi::xml_node  node,
std::vector< etiss::fault::FaultRef > &  dst,
Diagnostics &  diag 
)

Definition at line 170 of file Fault.cpp.

References etiss::log(), and etiss::VERBOSE.

Here is the call graph for this function:

◆ setAttribute() [1/2]

static bool etiss::fault::xml::setAttribute ( pugi::xml_node &  node,
const std::string &  attr_name,
const int32_t src,
Diagnostics &  diag 
)
static

Definition at line 116 of file Fault.cpp.

References int32_t.

◆ setAttribute() [2/2]

static bool etiss::fault::xml::setAttribute ( pugi::xml_node &  node,
const std::string &  attr_name,
const std::string &  src,
Diagnostics &  diag 
)
static

Definition at line 103 of file Fault.cpp.

◆ write< std::vector< etiss::fault::Fault > >()

template<>
bool etiss::fault::xml::write< std::vector< etiss::fault::Fault > > ( pugi::xml_node  node,
const std::vector< etiss::fault::Fault > &  src,
Diagnostics &  diag 
)

Definition at line 155 of file Fault.cpp.

References etiss::log(), and etiss::VERBOSE.

Here is the call graph for this function:

◆ write< std::vector< etiss::fault::FaultRef > >()

template<>
bool etiss::fault::xml::write< std::vector< etiss::fault::FaultRef > > ( pugi::xml_node  node,
const std::vector< etiss::fault::FaultRef > &  src,
Diagnostics &  diag 
)

Definition at line 200 of file Fault.cpp.

References etiss::log(), and etiss::VERBOSE.

Here is the call graph for this function: