|
|
Go to the documentation of this file.
24#ifndef FAUDES_CGENERATOR_H
25#define FAUDES_CGENERATOR_H
49#ifdef FAUDES_COMPATIBILITY
75template < class GlobalAttr, class StateAttr, class EventAttr, class TransAttr>
138 return dynamic_cast< const TcGenerator* > (pOther); };
179 void InsControllableEvent( Idx index);
191 Idx InsControllableEvent( const std::string& rName);
200 void InsUncontrollableEvent( Idx index);
212 Idx InsUncontrollableEvent( const std::string& rName);
220 void SetControllable( Idx index);
228 void SetControllable( const std::string& rName);
236 void SetControllable( const EventSet& rEvents);
244 void ClrControllable( Idx index);
252 void ClrControllable( const std::string& rName);
260 void ClrControllable( const EventSet& rEvents);
271 bool Controllable( Idx index) const;
282 bool Controllable( const std::string& rName) const;
290 EventSet ControllableEvents( void) const;
298 EventSet UncontrollableEvents( void) const;
307 void InsObservableEvent( Idx index);
319 Idx InsObservableEvent( const std::string& rName);
328 void InsUnobservableEvent( Idx index);
340 Idx InsUnobservableEvent( const std::string& rName);
348 void SetObservable( Idx index);
356 void SetObservable( const std::string& rName);
364 void SetObservable( const EventSet& rEvents);
372 void ClrObservable( Idx index);
380 void ClrObservable( const std::string& rName);
388 void ClrObservable( const EventSet& rEvents);
399 bool Observable( Idx index) const;
410 bool Observable( const std::string& rName) const;
418 EventSet ObservableEvents( void) const;
426 EventSet UnobservableEvents( void) const;
435 void InsForcibleEvent( Idx index);
447 Idx InsForcibleEvent( const std::string& rName);
456 void InsUnforcibleEvent( Idx index);
468 Idx InsUnforcibleEvent( const std::string& rName);
476 void SetForcible( Idx index);
484 void SetForcible( const std::string& rName);
492 void SetForcible( const EventSet& rEvents);
500 void ClrForcible( Idx index);
508 void ClrForcible( const std::string& rName);
516 void ClrForcible( const EventSet& rEvents);
527 bool Forcible( Idx index) const;
538 bool Forcible( const std::string& rName) const;
546 EventSet ForcibleEvents( void) const;
554 EventSet UnforcibleEvents( void) const;
563 void InsHighlevelEvent( Idx index);
575 Idx InsHighlevelEvent( const std::string& rName);
584 void InsLowlevelEvent( Idx index);
596 Idx InsLowlevelEvent( const std::string& rName);
604 void SetHighlevel( Idx index);
612 void SetHighlevel( const std::string& rName);
620 void SetHighlevel( const EventSet& rEvents);
628 void SetLowlevel( Idx index);
636 void SetLowlevel( const std::string& rName);
644 void SetLowlevel( const EventSet& rEvents);
655 bool Highlevel( Idx index) const;
666 bool Highlevel( const std::string& rName) const;
677 bool Lowlevel( Idx index) const;
688 bool Lowlevel( const std::string& rName) const;
696 EventSet HighlevelEvents( void) const;
704 EventSet LowlevelEvents( void) const;
728#ifdef FAUDES_COMPATIBILITY
748#define THIS TcGenerator<GlobalAttr, StateAttr, EventAttr, TransAttr>
749#define BASE TaGenerator<GlobalAttr, StateAttr, EventAttr, TransAttr>
750#define TEMP template <class GlobalAttr, class StateAttr, class EventAttr, class TransAttr>
755 FD_DG( "TcGenerator(" << this << ")::TcGenerator()");
760 FD_DG( "TcGenerator(" << this << ")::TcGenerator(rOtherGen)");
765 FD_DG( "TcGenerator(" << this << ")::TcGenerator(rOtherGen)");
769TEMP THIS::TcGenerator( const std::string& rFileName) : BASE(rFileName) {
770 FD_DG( "TcGenerator(" << this << ")::TcGenerator(rFilename) : done");
775 FD_DG( "TcGenerator(" << this << ")::operator = [v]" << &rOtherGen);
776 return Assign(rOtherGen);
781 FD_DG( "TcGenerator(" << this << ")::Assign([type] " << &rSrc << ")");
783 if(&rSrc== static_cast<const Type* >( this)) return * this;
798 FD_DG( "TcGenerator(" << this << ")::Assign([type] " << &rSrc << "): call base");
808 res->EventSymbolTablep(BASE::mpEventSymbolTable);
809 res->mStateNamesEnabled=BASE::mStateNamesEnabled;
810 res->mReindexOnWrite=BASE::mReindexOnWrite;
825 THIS res= BASE::NewAGen();
838 TEMP bool THIS::Controllable( Idx index) const {
839 EventAttr attr=BASE::EventAttribute(index);
840 return attr.Controllable();
844 TEMP bool THIS::Controllable( const std::string& rName) const {
845 EventAttr attr=BASE::EventAttribute(rName);
846 return attr.Controllable();
850 TEMP void THIS::InsControllableEvent( Idx index) {
851 FD_DG( "TcGenerator(" << this << ")::InsControllableEvent(" << index << ")");
853 attr.SetControllable();
854 BASE::InsEvent(index,attr);
858 TEMP Idx THIS::InsControllableEvent( const std::string& rName) {
859 FD_DG( "TcGenerator(" << this << ")::InsControllableEvent(" << rName << ")");
861 attr.SetControllable();
862 return BASE::InsEvent(rName,attr);
866 TEMP void THIS::InsUncontrollableEvent( Idx index) {
867 FD_DG( "TcGenerator(" << this << ")::InsUncontrollableEvent(" << index << ")");
869 attr.ClrControllable();
870 BASE::InsEvent(index,attr);
874 TEMP Idx THIS::InsUncontrollableEvent( const std::string& rName) {
875 FD_DG( "TcGenerator(" << this << ")::InsUncontrollableEvent(" << rName << ")");
877 attr.ClrControllable();
878 return BASE::InsEvent(rName,attr);
883 FD_DG( "TcGenerator(" << this << ")::SetControllable(" << index << ")");
884 EventAttr attr=BASE::EventAttribute(index);
885 attr.SetControllable();
886 BASE::pAlphabet->Attribute(index,attr);
890 TEMP void THIS::SetControllable( const std::string& rName) {
891 FD_DG( "TcGenerator(" << this << ")::SetControllable(" << rName << ")");
892 Idx index = BASE::EventIndex(rName);
893 SetControllable(index);
898 FD_DG( "TcGenerator(" << this << ")::SetControllable(rEvents)");
899 EventSet::Iterator it;
900 for(it=rEvents. Begin(); it!=rEvents. End(); it++) {
901 SetControllable(*it);
907 FD_DG( "TcGenerator(" << this << ")::ClrControllable(" << index << ")");
908 EventAttr attr=BASE::EventAttribute(index);
909 attr.ClrControllable();
910 BASE::pAlphabet->Attribute(index,attr);
914 TEMP void THIS::ClrControllable( const std::string& rName) {
915 FD_DG( "TcGenerator(" << this << ")::ClrControllable(" << rName << ")");
916 Idx index = BASE::EventIndex(rName);
917 ClrControllable(index);
922 FD_DG( "TcGenerator(" << this << ")::ClrControllable(rEvents)");
923 EventSet::Iterator it;
924 for(it=rEvents. Begin(); it!=rEvents. End(); it++) {
925 ClrControllable(*it);
931 FD_DG( "TcGenerator(" << this << ")::ControllableEvents()");
933 EventSet::Iterator it;
934 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
935 if(Controllable(*it)) res. Insert(*it);
943 FD_DG( "TcGenerator(" << this << ")::UncontrollableEvents()");
945 EventSet::Iterator it;
946 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
947 if(!Controllable(*it)) res. Insert(*it);
954 EventAttr attr=BASE::EventAttribute(index);
955 return attr.Observable();
959 TEMP bool THIS::Observable( const std::string& rName) const {
960 EventAttr attr=BASE::EventAttribute(rName);
961 return attr.Observable();
965 TEMP void THIS::InsObservableEvent( Idx index) {
966 FD_DG( "TcGenerator(" << this << ")::InsObservableEvent(" << index << ")");
968 attr.SetObservable();
969 BASE::InsEvent(index,attr);
973 TEMP Idx THIS::InsObservableEvent( const std::string& rName) {
974 FD_DG( "TcGenerator(" << this << ")::InsObservableEvent(" << rName << ")");
976 attr.SetObservable();
977 return BASE::InsEvent(rName,attr);
981 TEMP void THIS::InsUnobservableEvent( Idx index) {
982 FD_DG( "TcGenerator(" << this << ")::InsUnobservableEvent(" << index << ")");
984 attr.ClrObservable();
985 BASE::InsEvent(index,attr);
989 TEMP Idx THIS::InsUnobservableEvent( const std::string& rName) {
990 FD_DG( "TcGenerator(" << this << ")::InsUnobservableEvent(" << rName << ")");
992 attr.ClrObservable();
993 return BASE::InsEvent(rName,attr);
998 FD_DG( "TcGenerator(" << this << ")::SetObservable(" << index << ")");
999 EventAttr attr=BASE::EventAttribute(index);
1000 attr.SetObservable();
1001 BASE::pAlphabet->Attribute(index,attr);
1005 TEMP void THIS::SetObservable( const std::string& rName) {
1006 FD_DG( "TcGenerator(" << this << ")::SetObservable(" << rName << ")");
1007 Idx index = BASE::EventIndex(rName);
1008 SetObservable(index);
1013 FD_DG( "TcGenerator(" << this << ")::SetObservable(rEvents)");
1014 EventSet::Iterator it;
1015 for(it=rEvents. Begin(); it!=rEvents. End(); it++) {
1022 FD_DG( "TcGenerator(" << this << ")::ClrObservable(" << index << ")");
1023 EventAttr attr=BASE::EventAttribute(index);
1024 attr.ClrObservable();
1025 BASE::pAlphabet->Attribute(index,attr);
1029 TEMP void THIS::ClrObservable( const std::string& rName) {
1030 FD_DG( "TcGenerator(" << this << ")::ClrObservable(" << rName << ")");
1031 Idx index = BASE::EventIndex(rName);
1032 ClrObservable(index);
1037 FD_DG( "TcGenerator(" << this << ")::ClrObservable(rEvents)");
1038 EventSet::Iterator it;
1039 for(it=rEvents. Begin(); it!=rEvents. End(); it++) {
1046 FD_DG( "TcGenerator(" << this << ")::ObservableEvents()");
1048 EventSet::Iterator it;
1049 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
1050 if(Observable(*it)) res. Insert(*it);
1058 FD_DG( "TcGenerator(" << this << ")::UnobservableEvents()");
1060 EventSet::Iterator it;
1061 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
1062 if(!Observable(*it)) res. Insert(*it);
1070 EventAttr attr=BASE::EventAttribute(index);
1071 return attr.Forcible();
1075 TEMP bool THIS::Forcible( const std::string& rName) const {
1076 EventAttr attr=BASE::EventAttribute(rName);
1077 return attr.Forcible();
1082 FD_DG( "TcGenerator(" << this << ")::InsForcibleEvent(" << index << ")");
1085 BASE::InsEvent(index,attr);
1089 TEMP Idx THIS::InsForcibleEvent( const std::string& rName) {
1090 FD_DG( "TcGenerator(" << this << ")::InsForcibleEvent(" << rName << ")");
1093 return BASE::InsEvent(rName,attr);
1098 FD_DG( "TcGenerator(" << this << ")::InsUnforcibleEvent(" << index << ")");
1101 BASE::InsEvent(index,attr);
1105 TEMP Idx THIS::InsUnforcibleEvent( const std::string& rName) {
1106 FD_DG( "TcGenerator(" << this << ")::InsUnforcibleEvent(" << rName << ")");
1109 return BASE::InsEvent(rName,attr);
1114 FD_DG( "TcGenerator(" << this << ")::SetForcible(" << index << ")");
1115 EventAttr attr=BASE::EventAttribute(index);
1117 BASE::pAlphabet->Attribute(index,attr);
1121 TEMP void THIS::SetForcible( const std::string& rName) {
1122 FD_DG( "TcGenerator(" << this << ")::SetForcible(" << rName << ")");
1123 Idx index = BASE::EventIndex(rName);
1129 FD_DG( "TcGenerator(" << this << ")::SetForcible(rEvents)");
1130 EventSet::Iterator it;
1131 for(it=rEvents. Begin(); it!=rEvents. End(); it++) {
1138 FD_DG( "TcGenerator(" << this << ")::ClrForcible(" << index << ")");
1139 EventAttr attr=BASE::EventAttribute(index);
1141 BASE::pAlphabet->Attribute(index,attr);
1145 TEMP void THIS::ClrForcible( const std::string& rName) {
1146 FD_DG( "TcGenerator(" << this << ")::ClrForcible(" << rName << ")");
1147 Idx index = BASE::EventIndex(rName);
1153 FD_DG( "TcGenerator(" << this << ")::ClrForcible(rEvents)");
1154 EventSet::Iterator it;
1155 for(it=rEvents. Begin(); it!=rEvents. End(); it++) {
1162 FD_DG( "TcGenerator(" << this << ")::ForcibleEvents()");
1164 EventSet::Iterator it;
1165 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
1166 if(Forcible(*it)) res. Insert(*it);
1174 FD_DG( "TcGenerator(" << this << ")::UnforcibleEvents()");
1176 EventSet::Iterator it;
1177 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
1178 if(!Forcible(*it)) res. Insert(*it);
1186 EventAttr attr=BASE::EventAttribute(index);
1187 return attr.Highlevel();
1191 TEMP bool THIS::Highlevel( const std::string& rName) const {
1192 EventAttr attr=BASE::EventAttribute(rName);
1193 return attr.Highlevel();
1198 EventAttr attr=BASE::EventAttribute(index);
1199 return attr.Lowlevel();
1203 TEMP bool THIS::Lowlevel( const std::string& rName) const {
1204 EventAttr attr=BASE::EventAttribute(rName);
1205 return attr.Lowlevel();
1210 FD_DG( "TcGenerator(" << this << ")::InsHighlevelEvent(" << index << ")");
1212 attr.SetHighlevel();
1213 BASE::InsEvent(index,attr);
1217 TEMP Idx THIS::InsHighlevelEvent( const std::string& rName) {
1218 FD_DG( "TcGenerator(" << this << ")::InsHighlevelEvent(" << rName << ")");
1220 attr.SetHighlevel();
1221 return BASE::InsEvent(rName,attr);
1226 FD_DG( "TcGenerator(" << this << ")::InsLowlevelEvent(" << index << ")");
1229 BASE::InsEvent(index,attr);
1233 TEMP Idx THIS::InsLowlevelEvent( const std::string& rName) {
1234 FD_DG( "TcGenerator(" << this << ")::InsLowlevelEvent(" << rName << ")");
1237 return BASE::InsEvent(rName,attr);
1242 FD_DG( "TcGenerator(" << this << ")::SetHighlevel(" << index << ")");
1243 EventAttr attr=BASE::EventAttribute(index);
1244 attr.SetHighlevel();
1245 BASE::pAlphabet->Attribute(index,attr);
1249 TEMP void THIS::SetHighlevel( const std::string& rName) {
1250 FD_DG( "TcGenerator(" << this << ")::SetHighlevel(" << rName << ")");
1251 Idx index = BASE::EventIndex(rName);
1252 SetHighlevel(index);
1257 FD_DG( "TcGenerator(" << this << ")::SetHighlevel(rEvents)");
1258 EventSet::Iterator it;
1259 for(it=rEvents. Begin(); it!=rEvents. End(); it++) {
1266 FD_DG( "TcGenerator(" << this << ")::SetLowlevel(" << index << ")");
1267 EventAttr attr=BASE::EventAttribute(index);
1269 BASE::pAlphabet->Attribute(index,attr);
1273 TEMP void THIS::SetLowlevel( const std::string& rName) {
1274 FD_DG( "TcGenerator(" << this << ")::SetLowlevel(" << rName << ")");
1275 Idx index = BASE::EventIndex(rName);
1281 FD_DG( "TcGenerator(" << this << ")::SetLowlevel(rEvents)");
1282 EventSet::Iterator it;
1283 for(it=rEvents. Begin(); it!=rEvents. End(); it++) {
1290 FD_DG( "TcGenerator(" << this << ")::HighlevelEvents()");
1292 EventSet::Iterator it;
1293 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
1294 if(Highlevel(*it)) res. Insert(*it);
1301 FD_DG( "TcGenerator(" << this << ")::LowlevelEvents()");
1303 EventSet::Iterator it;
1304 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
1305 if(Lowlevel(*it)) res. Insert(*it);
bool Insert(const Idx &rIndex)
virtual const Type * Cast(const Type *pOther) const
TaNameSet< AttributeCFlags > Alphabet
Iterator Begin(void) const
TBaseVector< System > SystemVector
TcGenerator< AttributeVoid, AttributeVoid, AttributeCFlags, AttributeVoid > System
TBaseVector< Alphabet > AlphaberVector
TcGenerator< AttributeVoid, AttributeVoid, AttributeCFlags, AttributeVoid > cGenerator
TBaseVector< cGenerator > cGeneratorVector
TaNameSet< AttributeCFlags > cEventSet
TBaseVector< cEventSet > cEventSetVector
libFAUDES 2.33k
--- 2025.09.16
--- c++ api documentaion by doxygen
|