Version: 9.15.0
YACS::switchtypeParser Struct Reference

#include <switchParsers.hxx>

Inheritance diagram for YACS::switchtypeParser:
Collaboration diagram for YACS::switchtypeParser:

Public Member Functions

void onStart (const XML_Char *el, const XML_Char **attr)
 
void onEnd (const char *el, parser *child)
 
virtual void buildAttr (const XML_Char **attr)
 
virtual void pre ()
 
virtual void case_ (const std::pair< int, ENGINE::Node * > &p)
 
virtual void default_ (const std::pair< int, ENGINE::Node * > &p)
 
virtual void name (const std::string &name)
 
virtual void state (const std::string &state)
 
virtual void select (const int &s)
 
virtual ENGINE::Switchpost ()
 
- 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

std::vector< ENGINE::Switch * > _cnodes
 
std::string _state
 
- 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 switchtypeParser switchParser
 
- 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

Definition at line 86 of file switchParsers.hxx.

Member Function Documentation

◆ buildAttr()

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

Reimplemented from YACS::parser.

Definition at line 261 of file switchParsers.hxx.

262  {
263  if (!attr)
264  return;
265  this->required("name",attr);
266  for (int i = 0; attr[i]; i += 2)
267  {
268  if(std::string(attr[i]) == "name")name(attr[i+1]);
269  if(std::string(attr[i]) == "state")state(attr[i+1]);
270  if(std::string(attr[i]) == "select")select(atoi(attr[i+1]));
271  }
272  }
virtual void required(const std::string &name, const XML_Char **attr)
Definition: parserBase.cxx:186
virtual void state(const std::string &state)
virtual void select(const int &s)
virtual void name(const std::string &name)

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

◆ case_()

void YACS::switchtypeParser::case_ ( const std::pair< int, ENGINE::Node * > &  p)
virtual

Definition at line 274 of file switchParsers.hxx.

275  {
276  ENGINE::Switch* s=_cnodes.back();
277  s->edSetNode(p.first,p.second);
278  }
Proc * p
Definition: driver.cxx:216
std::vector< ENGINE::Switch * > _cnodes

References _cnodes, YACS::ENGINE::Switch::edSetNode(), and p.

Referenced by onEnd().

◆ default_()

void YACS::switchtypeParser::default_ ( const std::pair< int, ENGINE::Node * > &  p)
virtual

Definition at line 279 of file switchParsers.hxx.

280  {
281  ENGINE::Switch* s=_cnodes.back();
282  s->edSetDefaultNode(p.second);
283  }

References _cnodes, YACS::ENGINE::Switch::edSetDefaultNode(), and p.

Referenced by onEnd().

◆ name()

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

Definition at line 284 of file switchParsers.hxx.

285  {
286  ENGINE::Switch* s;
287  std::string fullname=currentProc->names.back()+name;
288  DEBTRACE( "switch_fullname: " << fullname )
290  _cnodes.push_back(s);
291  currentProc->names.push_back(fullname+'.');
292  }
#define DEBTRACE(msg)
Definition: YacsTrace.hxx:31
std::vector< std::string > names
Definition: Proc.hxx:93
virtual Switch * createSwitch(const std::string &name)
Definition: Runtime.cxx:236
YACS::ENGINE::Runtime * theRuntime
Definition: parsers.cxx:40
YACS::ENGINE::Proc * currentProc
Definition: parserBase.cxx:30

References _cnodes, YACS::ENGINE::Runtime::createSwitch(), currentProc, DEBTRACE, YACS::ENGINE::Proc::names, and theRuntime.

Referenced by buildAttr().

◆ onEnd()

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

Reimplemented from YACS::parser.

Definition at line 335 of file switchParsers.hxx.

336 {
337  DEBTRACE( "switchtypeParser::onEnd: " << el )
338  std::string element(el);
339  if(element == "case")case_(((casetypeParser*)child)->post());
340  else if(element == "default")default_(((defaultcasetypeParser*)child)->post());
341 }
virtual ENGINE::Switch * post()
virtual void default_(const std::pair< int, ENGINE::Node * > &p)
virtual void case_(const std::pair< int, ENGINE::Node * > &p)

References case_(), DEBTRACE, default_(), and post().

◆ onStart()

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

Reimplemented from YACS::parser.

Definition at line 321 of file switchParsers.hxx.

322 {
323  DEBTRACE( "switchtypeParser::onStart: " << el )
324  std::string element(el);
325  this->maxcount("default",1,element);
327  if(element == "case")pp=&casetypeParser::caseParser;
328  else if(element == "default")pp=&defaultcasetypeParser::defaultcaseParser;
329  SetUserDataAndPush(pp);
330  pp->init();
331  pp->pre();
332  pp->buildAttr(attr);
333 }
static casetypeParser caseParser
static defaultcasetypeParser defaultcaseParser
virtual void maxcount(std::string name, int max, std::string &el)
Definition: parserBase.cxx:122
virtual void SetUserDataAndPush(parser *pp)
Definition: parserBase.cxx:55
static parser main_parser
Definition: parserBase.hxx:41

References YACS::parser::buildAttr(), YACS::casetypeParser::caseParser, DEBTRACE, YACS::defaultcasetypeParser::defaultcaseParser, YACS::parser::init(), YACS::parser::main_parser, YACS::parser::maxcount(), YACS::parser::pre(), and YACS::parser::SetUserDataAndPush().

◆ post()

ENGINE::Switch * YACS::switchtypeParser::post ( )
virtual

Definition at line 311 of file switchParsers.hxx.

312  {
313  DEBTRACE( "switch_post: " )
314  ENGINE::Switch* sw=_cnodes.back();
315  //pop back current level name and node
316  _cnodes.pop_back();
317  currentProc->names.pop_back();
318  return sw;
319  }

References _cnodes, currentProc, DEBTRACE, and YACS::ENGINE::Proc::names.

Referenced by onEnd().

◆ pre()

void YACS::switchtypeParser::pre ( )
virtual

Reimplemented from YACS::parser.

Definition at line 273 of file switchParsers.hxx.

273 {_state="";}

References _state.

◆ select()

void YACS::switchtypeParser::select ( const int &  s)
virtual

Definition at line 304 of file switchParsers.hxx.

305  {
306  //select is an attribute
307  ENGINE::Switch* sw=_cnodes.back();
308  ENGINE::InputPort *p=sw->edGetConditionPort();
309  p->edInit(s);
310  }

References _cnodes, YACS::ENGINE::Switch::edGetConditionPort(), and p.

Referenced by buildAttr().

◆ state()

void YACS::switchtypeParser::state ( const std::string &  state)
virtual

Definition at line 293 of file switchParsers.hxx.

294  {
295  //state is an attribute (no order). It can be defined before name
296  //To be improved
297  ENGINE::Switch* s=_cnodes.back();
298  if(_state == "disabled")
299  {
300  DEBTRACE( "Switch disabled: " << s->getName())
301  s->exDisabledState();
302  }
303  }

References _cnodes, _state, DEBTRACE, YACS::ENGINE::Node::exDisabledState(), and YACS::ENGINE::ComposedNode::getName().

Referenced by buildAttr().

Member Data Documentation

◆ _cnodes

std::vector<ENGINE::Switch *> YACS::switchtypeParser::_cnodes

Definition at line 100 of file switchParsers.hxx.

Referenced by case_(), default_(), name(), post(), select(), and state().

◆ _state

std::string YACS::switchtypeParser::_state

Definition at line 101 of file switchParsers.hxx.

Referenced by pre(), and state().

◆ switchParser


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