|
|
Go to the documentation of this file.
11#ifndef FAUDES_IOS_SYSTEM_H
12#define FAUDES_IOS_SYSTEM_H
14#include "corefaudes.h"
33template < class GlobalAttr, class StateAttr, class EventAttr, class TransAttr>
150 void InsOutputEvent( Idx index);
163 Idx InsOutputEvent( const std::string& rName);
173 void InsInputEvent( Idx index);
187 Idx InsInputEvent( const std::string& rName);
214 void OutputEvents( const EventSet& rEventSet);
226 bool OutputEvent( Idx index) const;
238 bool OutputEvent( const std::string& rName) const;
248 void SetOutputEvent( Idx index);
258 void SetOutputEvent( const std::string& rName);
268 void SetOutputEvent( const EventSet& rEventSet);
278 void ClrOutputEvent( Idx index);
288 void ClrOutputEvent( const std::string& rName);
298 void ClrOutputEvent( const EventSet& rEventSet);
320 void InputEvents( const EventSet& rEventSet);
333 bool InputEvent( Idx index) const;
346 bool InputEvent( const std::string& rName) const;
356 void SetInputEvent( Idx index);
366 void SetInputEvent( const std::string& rName);
376 void SetInputEvent( const EventSet& rEventSet);
386 void ClrInputEvent( Idx index);
396 void ClrInputEvent( const std::string& rName);
406 void ClrInputEvent( const EventSet& rEventSet);
433 void OutputStates( const StateSet& rStateSet);
445 bool OutputState( Idx index) const;
457 bool OutputState( const std::string& rName) const;
467 void SetOutputState( Idx index);
477 void SetOutputState( const std::string& rName);
487 void SetOutputState( const StateSet& rStateSet);
497 void ClrOutputState( Idx index);
507 void ClrOutputState( const std::string& rName);
517 void ClrOutputState( const StateSet& rStateSet);
539 void InputStates( const StateSet& rStateSet);
552 bool InputState( Idx index) const;
565 bool InputState( const std::string& rName) const;
575 void SetInputState( Idx index);
585 void SetInputState( const std::string& rName);
595 void SetInputState( const StateSet& rStateSet);
605 void ClrInputState( Idx index);
615 void ClrInputState( const std::string& rName);
625 void ClrInputState( const StateSet& rStateSet);
647 void ErrorStates( const StateSet& rStateSet);
659 bool ErrorState( Idx index) const;
671 bool ErrorState( const std::string& rName) const;
681 void SetErrorState( Idx index);
691 void SetErrorState( const std::string& rName);
701 void SetErrorState( const StateSet& rStateSet);
711 void ClrErrorState( Idx index);
721 void ClrErrorState( const std::string& rName);
731 void ClrErrorState( const StateSet& rStateSet);
747 virtual bool UpdateAttributes( void);
780#define THIS TioGenerator<GlobalAttr,StateAttr,EventAttr,TransAttr>
781#define BASE TaGenerator<GlobalAttr,StateAttr,EventAttr,TransAttr>
782#define TEMP template <class GlobalAttr,class StateAttr,class EventAttr,class TransAttr>
791TEMP THIS::~TioGenerator( void) {
796TEMP THIS::TioGenerator( const std::string& rFileName) : BASE(rFileName) {
817 res->EventSymbolTablep(BASE::mpEventSymbolTable);
818 res->mStateNamesEnabled=BASE::mStateNamesEnabled;
819 res->mReindexOnWrite=BASE::mReindexOnWrite;
825 return new THIS(* this);
831 THIS res= BASE::NewAGen();
837 FD_DIO( "IoSystem(" << this << ")::InsOutputEvent(" << index << ")");
840 BASE::InsEvent(index,attr);
844TEMP Idx THIS::InsOutputEvent( const std::string& rName) {
848 return BASE::InsEvent(rName,attr);
856 BASE::InsEvent(index,attr);
860TEMP Idx THIS::InsInputEvent( const std::string& rName) {
864 return BASE::InsEvent(rName,attr);
873 res. Name( "OutputEvents");
874 EventSet::Iterator eit;
875 for(eit=BASE::AlphabetBegin(); eit!=BASE::AlphabetEnd(); eit++)
876 if(OutputEvent(*eit)) res. Insert(*eit);
883 EventSet::Iterator eit;
884 for(eit=BASE::AlphabetBegin(); eit!=BASE::AlphabetEnd(); eit++)
885 if(rEventSet. Exists(*eit)) SetOutputEvent(*eit);
886 else ClrOutputEvent(*eit);
891 return BASE::EventAttribute(index).Output();
895TEMP bool THIS::OutputEvent( const std::string& rName) const {
896 return BASE::EventAttribute(rName).Output();
902 EventAttr attr=BASE::EventAttribute(index);
904 BASE::pAlphabet->Attribute(index,attr);
908TEMP void THIS::SetOutputEvent( const std::string& rName) {
910 Idx index = BASE::EventIndex(rName);
911 SetOutputEvent(index);
917 for(EventSet::Iterator eit=rEventSet. Begin(); eit!=rEventSet. End(); eit++)
918 SetOutputEvent(*eit);
925 EventAttr attr=BASE::EventAttribute(index);
927 BASE::pAlphabet->Attribute(index,attr);
931TEMP void THIS::ClrOutputEvent( const std::string& rName) {
933 Idx index = BASE::EventIndex(rName);
934 ClrOutputEvent(index);
940 for(EventSet::Iterator eit=rEventSet. Begin(); eit!=rEventSet. End(); eit++)
941 ClrOutputEvent(*eit);
949 res. Name( "InputEvents");
950 EventSet::Iterator eit;
951 for(eit=BASE::AlphabetBegin(); eit!=BASE::AlphabetEnd(); eit++)
952 if(InputEvent(*eit)) res. Insert(*eit);
959 EventSet::Iterator eit;
960 for(eit=BASE::AlphabetBegin(); eit!=BASE::AlphabetEnd(); eit++)
961 if(rEventSet. Exists(*eit)) SetInputEvent(*eit);
962 else ClrInputEvent(*eit);
968 return BASE::EventAttribute(index).Input();
972TEMP bool THIS::InputEvent( const std::string& rName) const {
973 return BASE::EventAttribute(rName).Input();
979 EventAttr attr=BASE::EventAttribute(index);
981 BASE::pAlphabet->Attribute(index,attr);
985TEMP void THIS::SetInputEvent( const std::string& rName) {
987 Idx index = BASE::EventIndex(rName);
988 SetInputEvent(index);
994 for(EventSet::Iterator eit=rEventSet. Begin(); eit!=rEventSet. End(); eit++)
1002 EventAttr attr=BASE::EventAttribute(index);
1004 BASE::pAlphabet->Attribute(index,attr);
1008TEMP void THIS::ClrInputEvent( const std::string& rName) {
1010 Idx index = BASE::EventIndex(rName);
1011 ClrInputEvent(index);
1017 for(EventSet::Iterator eit=rEventSet. Begin(); eit!=rEventSet. End(); eit++)
1018 ClrInputEvent(*eit);
1026 res. Name( "OutputStates");
1027 StateSet::Iterator sit;
1028 for(sit=BASE::StatesBegin(); sit!=BASE::StatesEnd(); sit++)
1029 if(OutputState(*sit)) res. Insert(*sit);
1035 FD_DIO( "IoSystem(" << this << ")::OutputStates(" << rStateSet. Name() << ")");
1036 StateSet::Iterator sit;
1037 for(sit=BASE::StatesBegin(); sit!=BASE::StatesEnd(); sit++)
1038 if(rStateSet. Exists(*sit)) SetOutputState(*sit);
1039 else ClrOutputState(*sit);
1044 return BASE::StateAttribute(index).Output();
1048TEMP bool THIS::OutputState( const std::string& rName) const {
1049 Idx index = BASE::StateIndex(rName);
1050 return BASE::StateAttribute(index).Output();
1056 StateAttr attr=BASE::StateAttribute(index);
1058 BASE::pStates->Attribute(index,attr);
1062TEMP void THIS::SetOutputState( const std::string& rName) {
1064 Idx index = BASE::StateIndex(rName);
1065 SetOutputState(index);
1071 for(StateSet::Iterator eit=rStateSet. Begin(); eit!=rStateSet. End(); eit++)
1072 SetOutputState(*eit);
1079 StateAttr attr=BASE::StateAttribute(index);
1081 BASE::pStates->Attribute(index,attr);
1085TEMP void THIS::ClrOutputState( const std::string& rName) {
1087 Idx index = BASE::StateIndex(rName);
1088 ClrOutputState(index);
1094 for(StateSet::Iterator sit=rStateSet. Begin(); sit!=rStateSet. End(); sit++)
1095 ClrOutputState(*sit);
1103 res. Name( "InputStates");
1104 StateSet::Iterator sit;
1105 for(sit=BASE::StatesBegin(); sit!=BASE::StatesEnd(); sit++)
1106 if(InputState(*sit)) res. Insert(*sit);
1113 StateSet::Iterator sit;
1114 for(sit=BASE::StatesBegin(); sit!=BASE::StatesEnd(); sit++)
1115 if(rStateSet. Exists(*sit)) SetInputState(*sit);
1116 else ClrInputState(*sit);
1121 return BASE::StateAttribute(index).Input();
1125TEMP bool THIS::InputState( const std::string& rName) const {
1126 Idx index = BASE::StateIndex(rName);
1127 return BASE::StateAttribute(index).Input();
1133 StateAttr attr=BASE::StateAttribute(index);
1135 BASE::pStates->Attribute(index,attr);
1139TEMP void THIS::SetInputState( const std::string& rName) {
1141 Idx index = BASE::StateIndex(rName);
1142 SetInputState(index);
1148 for(StateSet::Iterator sit=rStateSet. Begin(); sit!=rStateSet. End(); sit++)
1149 SetInputState(*sit);
1156 StateAttr attr=BASE::StateAttribute(index);
1158 BASE::pStates->Attribute(index,attr);
1162TEMP void THIS::ClrInputState( const std::string& rName) {
1164 Idx index = BASE::StateIndex(rName);
1165 ClrInputState(index);
1171 for(StateSet::Iterator sit=rStateSet. Begin(); sit!=rStateSet. End(); sit++)
1172 ClrInputState(*sit);
1182 res. Name( "ErrorStates");
1183 StateSet::Iterator sit;
1184 for(sit=BASE::StatesBegin(); sit!=BASE::StatesEnd(); sit++)
1185 if(ErrorState(*sit)) res. Insert(*sit);
1192 StateSet::Iterator sit;
1193 for(sit=BASE::StatesBegin(); sit!=BASE::StatesEnd(); sit++)
1194 if(rStateSet. Exists(*sit)) SetErrorState(*sit);
1195 else ClrErrorState(*sit);
1200 return BASE::StateAttribute(index).Error();
1204TEMP bool THIS::ErrorState( const std::string& rName) const {
1205 Idx index = BASE::StateIndex(rName);
1206 return BASE::StateAttribute(index).Error();
1212 StateAttr attr=BASE::StateAttribute(index);
1214 BASE::pStates->Attribute(index,attr);
1218TEMP void THIS::SetErrorState( const std::string& rName) {
1220 Idx index = BASE::StateIndex(rName);
1221 SetErrorState(index);
1227 for(StateSet::Iterator sit=rStateSet. Begin(); sit!=rStateSet. End(); sit++)
1228 SetErrorState(*sit);
1235 StateAttr attr=BASE::StateAttribute(index);
1237 BASE::pStates->Attribute(index,attr);
1241TEMP void THIS::ClrErrorState( const std::string& rName) {
1243 Idx index = BASE::StateIndex(rName);
1244 ClrErrorState(index);
1250 for(StateSet::Iterator sit=rStateSet. Begin(); sit!=rStateSet. End(); sit++)
1251 ClrErrorState(*sit);
1256TEMP bool THIS::UpdateAttributes( void) {
const std::string & Name(void) const
bool Exists(const Idx &rIndex) const
bool Insert(const Idx &rIndex)
bool Exists(const T &rElem) const
Iterator Begin(void) const
TioGenerator< AttributeVoid, AttributeIosState, AttributeIosEvent, AttributeVoid > IoSystem
libFAUDES 2.33k
--- 2025.09.16
--- c++ api documentaion by doxygen
|