Version: 9.15.0
YACS::containertypeParser Struct Reference

Class for container parser. More...

#include <containerParsers.hxx>

Inheritance diagram for YACS::containertypeParser:
Collaboration diagram for YACS::containertypeParser:

Public Member Functions

virtual void buildAttr (const XML_Char **attr)
 
virtual void onStart (const XML_Char *el, const XML_Char **attr)
 
virtual void onEnd (const char *el, parser *child)
 
virtual void pre ()
 
virtual void name (const std::string &name)
 
virtual void machine_ (const machine &m)
 
virtual void property (const myprop &prop)
 
virtual void initializescriptkey (const myfunc &f)
 
mycontainer post ()
 
- Public Member Functions inherited from YACS::parser
 parser ()
 
virtual ~parser ()
 
virtual void SetUserDataAndPush (parser *pp)
 
virtual void charData (const XML_Char *s, int len)
 
virtual void endParser ()
 
virtual void init ()
 
virtual void incrCount (const XML_Char *elem)
 
virtual void checkOrder (std::string &el)
 
virtual void maxcount (std::string name, int max, std::string &el)
 
virtual void mincount (std::string name, int min)
 
virtual void maxchoice (std::string *names, int max, std::string &el)
 
virtual void minchoice (std::string *names, int min)
 
virtual void required (const std::string &name, const XML_Char **attr)
 
std::stack< parser * > & getStack ()
 
template<class T >
post ()
 
void logError (const std::string &reason)
 

Public Attributes

mycontainer _container
 
- Public Attributes inherited from YACS::parser
std::string _file
 
std::string _content
 
std::map< std::string, int > * _counts
 
std::map< std::string, int > _orders
 
int _orderState
 
int _level
 
std::stack< std::map< std::string, int > * > _stackCount
 
std::stack< int > _stackOrder
 
std::map< std::string, parser * > * _defaultParsersMap
 

Static Public Attributes

static containertypeParser containerParser
 
- Static Public Attributes inherited from YACS::parser
static parser main_parser
 
static std::stack< parser * > _stackParser
 

Additional Inherited Members

- Static Public Member Functions inherited from YACS::parser
static void XMLCALL start_document (void *data)
 
static void XMLCALL end_document (void *data)
 
static void XMLCALL start_element (void *data, const xmlChar *name, const xmlChar **p)
 
static void XMLCALL end_element (void *data, const xmlChar *name)
 
static void XMLCALL characters (void *data, const xmlChar *ch, int len)
 
static void XMLCALL comment (void *data, const xmlChar *value)
 
static void XMLCALL cdata_block (void *data, const xmlChar *value, int len)
 
static void XMLCALL warning (void *data, const char *fmt,...)
 
static void XMLCALL error (void *data, const char *fmt,...)
 
static void XMLCALL fatal_error (void *data, const char *fmt,...)
 
static void XML_SetUserData (_xmlParserCtxt *ctxt, parser *par)
 

Detailed Description

Class for container parser.

Class used to parse container description

XML schema is

  <xsd:complexType name="ContainerType">
    <xsd:sequence>
      <xsd:element name="machine" type="MachineType" minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element name="property" type="PropertyType" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="name" type="xsd:string" use="required"/>
  </xsd:complexType>

Definition at line 66 of file containerParsers.hxx.

Member Function Documentation

◆ buildAttr()

void YACS::containertypeParser::buildAttr ( const XML_Char **  attr)
virtual

Reimplemented from YACS::parser.

Definition at line 50 of file containerParsers.cxx.

51  {
52  if (!attr)
53  return;
54  required("name",attr);
55  for (int i = 0; attr[i]; i += 2)
56  {
57  if(std::string(attr[i]) == "name")name(attr[i+1]);
58  }
59  }
virtual void name(const std::string &name)
virtual void required(const std::string &name, const XML_Char **attr)
Definition: parserBase.cxx:186

References yacsorb.CORBAEngineTest::i, name(), and YACS::parser::required().

◆ initializescriptkey()

void YACS::containertypeParser::initializescriptkey ( const myfunc f)
virtual

◆ machine_()

void YACS::containertypeParser::machine_ ( const machine m)
virtual

Definition at line 85 of file containerParsers.cxx.

86  {
87  DEBTRACE( "machine: " << m._name )
88  _container._machs.push_back(m);
89  }
#define DEBTRACE(msg)
Definition: YacsTrace.hxx:31

References _container, mycontainer::_machs, DEBTRACE, and gui.GraphViewer::m.

Referenced by onEnd().

◆ name()

void YACS::containertypeParser::name ( const std::string &  name)
virtual

Definition at line 84 of file containerParsers.cxx.

std::string _name
Definition: factory.hxx:115

References _container, and mycontainer::_name.

Referenced by buildAttr().

◆ onEnd()

void YACS::containertypeParser::onEnd ( const char *  el,
parser child 
)
virtual

Reimplemented from YACS::parser.

Definition at line 72 of file containerParsers.cxx.

73  {
74  std::string element(el);
75  if(element == "machine")machine_(((machinetypeParser*)child)->post());
76  if(element == "property")property(((propertytypeParser*)child)->post());
77  if(element == "initializescriptkey")initializescriptkey(((codetypeParser*)child)->post());
78  }
virtual void property(const myprop &prop)
virtual void initializescriptkey(const myfunc &f)
virtual void machine_(const machine &m)

References initializescriptkey(), machine_(), post(), and property().

◆ onStart()

void YACS::containertypeParser::onStart ( const XML_Char el,
const XML_Char **  attr 
)
virtual

Reimplemented from YACS::parser.

Definition at line 60 of file containerParsers.cxx.

61  {
62  std::string element(el);
64  if(element == "machine")pp=&machinetypeParser::machineParser;
65  if(element == "property")pp=&propertytypeParser::propertyParser;
66  if(element == "initializescriptkey")pp=&codetypeParser::codeParser;
68  pp->init();
69  pp->pre();
70  pp->buildAttr(attr);
71  }
static codetypeParser codeParser
Definition: codeParsers.hxx:36
static machinetypeParser machineParser
virtual void SetUserDataAndPush(parser *pp)
Definition: parserBase.cxx:55
static parser main_parser
Definition: parserBase.hxx:41
static propertytypeParser propertyParser

References YACS::parser::buildAttr(), YACS::codetypeParser::codeParser, YACS::parser::init(), YACS::machinetypeParser::machineParser, YACS::parser::main_parser, YACS::parser::pre(), YACS::propertytypeParser::propertyParser, and YACS::parser::SetUserDataAndPush().

◆ post()

mycontainer YACS::containertypeParser::post ( )

Definition at line 100 of file containerParsers.cxx.

101  {
102  //mincount("machine",1);
103  return _container;
104  }

References _container.

Referenced by onEnd().

◆ pre()

void YACS::containertypeParser::pre ( )
virtual

Reimplemented from YACS::parser.

Definition at line 79 of file containerParsers.cxx.

80  {
81  _container._machs.clear();
82  _container._props.clear();
83  }
machines _machs
Definition: factory.hxx:116

References _container, mycontainer::_machs, and mycontainer::_props.

◆ property()

void YACS::containertypeParser::property ( const myprop prop)
virtual

Definition at line 90 of file containerParsers.cxx.

91  {
92  DEBTRACE( "property_set: " << prop._name << " " << prop._value );
93  _container._props[prop._name]=prop._value;
94  }
std::string _name
Definition: factory.hxx:96
std::string _value
Definition: factory.hxx:97

References _container, myprop::_name, mycontainer::_props, myprop::_value, and DEBTRACE.

Referenced by onEnd().

Member Data Documentation

◆ _container

mycontainer YACS::containertypeParser::_container

Definition at line 78 of file containerParsers.hxx.

Referenced by initializescriptkey(), machine_(), name(), post(), pre(), and property().

◆ containerParser

containertypeParser YACS::containertypeParser::containerParser
static

Definition at line 68 of file containerParsers.hxx.

Referenced by YACS::proctypeParser< T >::onStart().


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