Version: 9.16.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 onStart (const XML_Char *el, const XML_Char **attr)
 
virtual void onEnd (const XML_Char *el, parser *child)
 
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 pre ()
 
virtual void required (const std::string &name, const XML_Char **attr)
 
virtual void buildAttr (const XML_Char **attr)
 
std::stack< parser * > & getStack ()
 
template<class T >
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, name(), YACS::ENGINE::Proc::names, and theRuntime.

Referenced by buildAttr(), and name().

◆ 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;
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

switchtypeParser YACS::switchtypeParser::switchParser
static

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