Fawkes API Fawkes Development Version
InterfaceParser Class Reference

Parser used to get information out of interface template. More...

#include <interfaces/generator/parser.h>

Public Member Functions

 InterfaceParser (std::string config_filename)
 Constructor. More...
 
 ~InterfaceParser ()
 Destructor. More...
 
std::vector< InterfaceFieldgetFields (xmlpp::Node *node, const std::set< std::string > &reserved_names)
 Get parsed fields. More...
 
std::vector< InterfacePseudoMapgetPseudoMaps (xmlpp::Node *node, std::vector< InterfaceField > &fields)
 Get parsed pseudo maps. More...
 
void parse ()
 Parse config. More...
 
void printFields (std::vector< InterfaceField > &fields)
 Print fields. More...
 
void printPseudoMaps (std::vector< InterfacePseudoMap > &pseudo_maps)
 Print pseudo maps. More...
 
void print ()
 Print parsed data. More...
 
void printParsed (std::vector< InterfaceConstant > &constants, std::vector< InterfaceEnumConstant > &enum_constants, std::vector< InterfaceField > &data_fields, std::vector< InterfacePseudoMap > &pseudo_maps, std::vector< InterfaceMessage > &messages)
 Print parsed config. More...
 
std::string getInterfaceName ()
 Get interface name. More...
 
std::string getInterfaceAuthor ()
 Get interface author. More...
 
std::string getInterfaceYear ()
 Get interface copyright year. More...
 
std::string getInterfaceCreationDate ()
 Get interface creation date as string Only valid after parse(). More...
 
std::vector< InterfaceConstantgetConstants ()
 Get constants. More...
 
std::vector< InterfaceEnumConstantgetEnumConstants ()
 Get enum constants. More...
 
std::vector< InterfaceFieldgetDataFields ()
 Get data fields. More...
 
std::vector< InterfacePseudoMapgetPseudoMaps ()
 Get data pseudo maps. More...
 
std::string getDataComment ()
 Get data comment. More...
 
std::vector< InterfaceMessagegetMessages ()
 Get messages. More...
 

Detailed Description

Parser used to get information out of interface template.

Uses XML parser internally.

Definition at line 39 of file parser.h.

Constructor & Destructor Documentation

◆ InterfaceParser()

InterfaceParser::InterfaceParser ( std::string  config_filename)

Constructor.

Parameters
config_filenamefile name of config (interface template)

Definition at line 46 of file parser.cpp.

◆ ~InterfaceParser()

InterfaceParser::~InterfaceParser ( )

Destructor.

Definition at line 59 of file parser.cpp.

Member Function Documentation

◆ getConstants()

std::vector< InterfaceConstant > InterfaceParser::getConstants ( )

Get constants.

Only valid after parse().

Returns
constants.

Definition at line 713 of file parser.cpp.

◆ getDataComment()

std::string InterfaceParser::getDataComment ( )

Get data comment.

Only valid after parse().

Returns
data comment.

Definition at line 753 of file parser.cpp.

◆ getDataFields()

std::vector< InterfaceField > InterfaceParser::getDataFields ( )

Get data fields.

Only valid after parse().

Returns
data fields.

Definition at line 733 of file parser.cpp.

◆ getEnumConstants()

std::vector< InterfaceEnumConstant > InterfaceParser::getEnumConstants ( )

Get enum constants.

Only valid after parse().

Returns
enum constants.

Definition at line 723 of file parser.cpp.

◆ getFields()

std::vector< InterfaceField > InterfaceParser::getFields ( xmlpp::Node *  node,
const std::set< std::string > &  reserved_names 
)

Get parsed fields.

Get fields stored below the given node.

Parameters
noderoot node where to start searching
reserved_namesreserved names which may not be used as identifiers
Returns
vector of field representations.

Definition at line 71 of file parser.cpp.

References InterfaceField::getName(), InterfaceField::setAttribute(), InterfaceField::setComment(), and InterfaceField::valid().

Referenced by parse().

◆ getInterfaceAuthor()

std::string InterfaceParser::getInterfaceAuthor ( )

Get interface author.

Only valid after parse().

Returns
interface author.

Definition at line 683 of file parser.cpp.

◆ getInterfaceCreationDate()

std::string InterfaceParser::getInterfaceCreationDate ( )

Get interface creation date as string Only valid after parse().

Returns
interface creation date

Definition at line 703 of file parser.cpp.

◆ getInterfaceName()

std::string InterfaceParser::getInterfaceName ( )

Get interface name.

Only valid after parse().

Returns
interface name.

Definition at line 673 of file parser.cpp.

◆ getInterfaceYear()

std::string InterfaceParser::getInterfaceYear ( )

Get interface copyright year.

Only valid after parse().

Returns
interface copyright year

Definition at line 693 of file parser.cpp.

◆ getMessages()

std::vector< InterfaceMessage > InterfaceParser::getMessages ( )

Get messages.

Only valid after parse().

Returns
messages.

Definition at line 763 of file parser.cpp.

◆ getPseudoMaps() [1/2]

std::vector< InterfacePseudoMap > InterfaceParser::getPseudoMaps ( )

Get data pseudo maps.

Only valid after parse().

Returns
pseudo maps

Definition at line 743 of file parser.cpp.

Referenced by parse().

◆ getPseudoMaps() [2/2]

std::vector< InterfacePseudoMap > InterfaceParser::getPseudoMaps ( xmlpp::Node *  node,
std::vector< InterfaceField > &  fields 
)

Get parsed pseudo maps.

Get pseudo maps stored below the given node.

Parameters
noderoot node where to start searching
fieldsvector of parsed fields, used to detect name clashes
Returns
vector of pseudo map representations.

Definition at line 126 of file parser.cpp.

References InterfacePseudoMap::addRef(), fawkes::Exception::print_trace(), and InterfacePseudoMap::valid().

◆ parse()

◆ print()

void InterfaceParser::print ( )

Print parsed data.

Definition at line 328 of file parser.cpp.

References printParsed().

◆ printFields()

void InterfaceParser::printFields ( std::vector< InterfaceField > &  fields)

Print fields.

Print fields to stdout.

Parameters
fieldsfields to print

Definition at line 235 of file parser.cpp.

Referenced by printParsed().

◆ printParsed()

void InterfaceParser::printParsed ( std::vector< InterfaceConstant > &  constants,
std::vector< InterfaceEnumConstant > &  enum_constants,
std::vector< InterfaceField > &  data_fields,
std::vector< InterfacePseudoMap > &  pseudo_maps,
std::vector< InterfaceMessage > &  messages 
)

Print parsed config.

Parameters
constantsparsed constants
enum_constantsparsed enum_constants
data_fieldsparsed data fields
pseudo_mapspseudo maps
messagesparsed messages.

Definition at line 292 of file parser.cpp.

References printFields(), and printPseudoMaps().

Referenced by print().

◆ printPseudoMaps()

void InterfaceParser::printPseudoMaps ( std::vector< InterfacePseudoMap > &  pseudo_maps)

Print pseudo maps.

Parameters
pseudo_mapspseudo maps to print

Definition at line 268 of file parser.cpp.

Referenced by printParsed().


The documentation for this class was generated from the following files: