|
|
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); };
192 void InsControllableEvent( Idx index);
204 Idx InsControllableEvent( const std::string& rName);
213 void InsUncontrollableEvent( Idx index);
225 Idx InsUncontrollableEvent( const std::string& rName);
233 void SetControllable( Idx index);
241 void SetControllable( const std::string& rName);
249 void SetControllable( const EventSet& rEvents);
257 void ClrControllable( Idx index);
265 void ClrControllable( const std::string& rName);
273 void ClrControllable( const EventSet& rEvents);
284 bool Controllable( Idx index) const;
295 bool Controllable( const std::string& rName) const;
303 EventSet ControllableEvents( void) const;
311 EventSet UncontrollableEvents( void) const;
320 void InsObservableEvent( Idx index);
332 Idx InsObservableEvent( const std::string& rName);
341 void InsUnobservableEvent( Idx index);
353 Idx InsUnobservableEvent( const std::string& rName);
361 void SetObservable( Idx index);
369 void SetObservable( const std::string& rName);
377 void SetObservable( const EventSet& rEvents);
385 void ClrObservable( Idx index);
393 void ClrObservable( const std::string& rName);
401 void ClrObservable( const EventSet& rEvents);
412 bool Observable( Idx index) const;
423 bool Observable( const std::string& rName) const;
431 EventSet ObservableEvents( void) const;
439 EventSet UnobservableEvents( void) const;
448 void InsForcibleEvent( Idx index);
460 Idx InsForcibleEvent( const std::string& rName);
469 void InsUnforcibleEvent( Idx index);
481 Idx InsUnforcibleEvent( const std::string& rName);
489 void SetForcible( Idx index);
497 void SetForcible( const std::string& rName);
505 void SetForcible( const EventSet& rEvents);
513 void ClrForcible( Idx index);
521 void ClrForcible( const std::string& rName);
529 void ClrForcible( const EventSet& rEvents);
540 bool Forcible( Idx index) const;
551 bool Forcible( const std::string& rName) const;
559 EventSet ForcibleEvents( void) const;
567 EventSet UnforcibleEvents( void) const;
577 void InsPreemptibleEvent( Idx index);
589 Idx InsPreemptibleEvent( const std::string& rName);
598 void InsUnpreemptibleEvent( Idx index);
610 Idx InsUnpreemptibleEvent( const std::string& rName);
618 void SetPreemptible( Idx index);
626 void SetPreemptible( const std::string& rName);
634 void SetPreemptible( const EventSet& rEvents);
642 void ClrPreemptible( Idx index);
650 void ClrPreemptible( const std::string& rName);
658 void ClrPreemptible( const EventSet& rEvents);
669 bool Preemptible( Idx index) const;
680 bool Preemptible( const std::string& rName) const;
688 EventSet PreemptibleEvents( void) const;
696 EventSet UnpreemptibleEvents( void) const;
721#ifdef FAUDES_COMPATIBILITY
741#define THIS TcGenerator<GlobalAttr, StateAttr, EventAttr, TransAttr>
742#define BASE TaGenerator<GlobalAttr, StateAttr, EventAttr, TransAttr>
743#define TEMP template <class GlobalAttr, class StateAttr, class EventAttr, class TransAttr>
748 FD_DG( "TcGenerator(" << this << ")::TcGenerator()");
753 FD_DG( "TcGenerator(" << this << ")::TcGenerator(rOtherGen)");
758 FD_DG( "TcGenerator(" << this << ")::TcGenerator(rOtherGen)");
762TEMP THIS::TcGenerator( const std::string& rFileName) : BASE(rFileName) {
763 FD_DG( "TcGenerator(" << this << ")::TcGenerator(rFilename) : done");
768 FD_DG( "TcGenerator(" << this << ")::operator = [v]" << &rOtherGen);
769 return Copy(rOtherGen);
774 FD_DG( "TcGenerator(" << this << ")::operator = [v]" << &rOtherGen);
775 return Move(rOtherGen);
780 FD_DG( "TcGenerator(" << this << ")::Copy([type] " << &rSrc << ")");
782 if(&rSrc== static_cast<const Type* >( this)) return * this;
797 FD_DG( "TcGenerator(" << this << ")::Copy([type] " << &rSrc << "): call base");
804 FD_DG( "TcGenerator(" << this << ")::Copy([type] " << &rSrc << ")");
806 if(&rSrc== static_cast<Type* >( this)) return * this;
808 FD_DG( "TcGenerator(" << this << ")::Copy([type] " << &rSrc << "): call base");
818 res->EventSymbolTablep(BASE::mpEventSymbolTable);
819 res->mStateNamesEnabled=BASE::mStateNamesEnabled;
820 res->mReindexOnWrite=BASE::mReindexOnWrite;
835 TEMP bool THIS::Controllable( Idx index) const {
836 EventAttr attr=BASE::EventAttribute(index);
837 return attr.Controllable();
841 TEMP bool THIS::Controllable( const std::string& rName) const {
842 EventAttr attr=BASE::EventAttribute(rName);
843 return attr.Controllable();
847 TEMP void THIS::InsControllableEvent( Idx index) {
848 FD_DG( "TcGenerator(" << this << ")::InsControllableEvent(" << index << ")");
850 attr.SetControllable();
851 BASE::InsEvent(index,attr);
855 TEMP Idx THIS::InsControllableEvent( const std::string& rName) {
856 FD_DG( "TcGenerator(" << this << ")::InsControllableEvent(" << rName << ")");
858 attr.SetControllable();
859 return BASE::InsEvent(rName,attr);
863 TEMP void THIS::InsUncontrollableEvent( Idx index) {
864 FD_DG( "TcGenerator(" << this << ")::InsUncontrollableEvent(" << index << ")");
866 attr.ClrControllable();
867 BASE::InsEvent(index,attr);
871 TEMP Idx THIS::InsUncontrollableEvent( const std::string& rName) {
872 FD_DG( "TcGenerator(" << this << ")::InsUncontrollableEvent(" << rName << ")");
874 attr.ClrControllable();
875 return BASE::InsEvent(rName,attr);
880 FD_DG( "TcGenerator(" << this << ")::SetControllable(" << index << ")");
881 EventAttr attr=BASE::EventAttribute(index);
882 attr.SetControllable();
883 BASE::pAlphabet->Attribute(index,attr);
887 TEMP void THIS::SetControllable( const std::string& rName) {
888 FD_DG( "TcGenerator(" << this << ")::SetControllable(" << rName << ")");
889 Idx index = BASE::EventIndex(rName);
890 SetControllable(index);
895 FD_DG( "TcGenerator(" << this << ")::SetControllable(rEvents)");
896 EventSet::Iterator it;
897 for(it=rEvents. Begin(); it!=rEvents. End(); it++) {
898 SetControllable(*it);
904 FD_DG( "TcGenerator(" << this << ")::ClrControllable(" << index << ")");
905 EventAttr attr=BASE::EventAttribute(index);
906 attr.ClrControllable();
907 BASE::pAlphabet->Attribute(index,attr);
911 TEMP void THIS::ClrControllable( const std::string& rName) {
912 FD_DG( "TcGenerator(" << this << ")::ClrControllable(" << rName << ")");
913 Idx index = BASE::EventIndex(rName);
914 ClrControllable(index);
919 FD_DG( "TcGenerator(" << this << ")::ClrControllable(rEvents)");
920 EventSet::Iterator it;
921 for(it=rEvents. Begin(); it!=rEvents. End(); it++) {
922 ClrControllable(*it);
928 FD_DG( "TcGenerator(" << this << ")::ControllableEvents()");
930 EventSet::Iterator it;
931 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
932 if(Controllable(*it)) res. Insert(*it);
940 FD_DG( "TcGenerator(" << this << ")::UncontrollableEvents()");
942 EventSet::Iterator it;
943 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
944 if(!Controllable(*it)) res. Insert(*it);
951 EventAttr attr=BASE::EventAttribute(index);
952 return attr.Observable();
956 TEMP bool THIS::Observable( const std::string& rName) const {
957 EventAttr attr=BASE::EventAttribute(rName);
958 return attr.Observable();
962 TEMP void THIS::InsObservableEvent( Idx index) {
963 FD_DG( "TcGenerator(" << this << ")::InsObservableEvent(" << index << ")");
965 attr.SetObservable();
966 BASE::InsEvent(index,attr);
970 TEMP Idx THIS::InsObservableEvent( const std::string& rName) {
971 FD_DG( "TcGenerator(" << this << ")::InsObservableEvent(" << rName << ")");
973 attr.SetObservable();
974 return BASE::InsEvent(rName,attr);
978 TEMP void THIS::InsUnobservableEvent( Idx index) {
979 FD_DG( "TcGenerator(" << this << ")::InsUnobservableEvent(" << index << ")");
981 attr.ClrObservable();
982 BASE::InsEvent(index,attr);
986 TEMP Idx THIS::InsUnobservableEvent( const std::string& rName) {
987 FD_DG( "TcGenerator(" << this << ")::InsUnobservableEvent(" << rName << ")");
989 attr.ClrObservable();
990 return BASE::InsEvent(rName,attr);
995 FD_DG( "TcGenerator(" << this << ")::SetObservable(" << index << ")");
996 EventAttr attr=BASE::EventAttribute(index);
997 attr.SetObservable();
998 BASE::pAlphabet->Attribute(index,attr);
1002 TEMP void THIS::SetObservable( const std::string& rName) {
1003 FD_DG( "TcGenerator(" << this << ")::SetObservable(" << rName << ")");
1004 Idx index = BASE::EventIndex(rName);
1005 SetObservable(index);
1010 FD_DG( "TcGenerator(" << this << ")::SetObservable(rEvents)");
1011 EventSet::Iterator it;
1012 for(it=rEvents. Begin(); it!=rEvents. End(); it++) {
1019 FD_DG( "TcGenerator(" << this << ")::ClrObservable(" << index << ")");
1020 EventAttr attr=BASE::EventAttribute(index);
1021 attr.ClrObservable();
1022 BASE::pAlphabet->Attribute(index,attr);
1026 TEMP void THIS::ClrObservable( const std::string& rName) {
1027 FD_DG( "TcGenerator(" << this << ")::ClrObservable(" << rName << ")");
1028 Idx index = BASE::EventIndex(rName);
1029 ClrObservable(index);
1034 FD_DG( "TcGenerator(" << this << ")::ClrObservable(rEvents)");
1035 EventSet::Iterator it;
1036 for(it=rEvents. Begin(); it!=rEvents. End(); it++) {
1043 FD_DG( "TcGenerator(" << this << ")::ObservableEvents()");
1045 EventSet::Iterator it;
1046 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
1047 if(Observable(*it)) res. Insert(*it);
1055 FD_DG( "TcGenerator(" << this << ")::UnobservableEvents()");
1057 EventSet::Iterator it;
1058 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
1059 if(!Observable(*it)) res. Insert(*it);
1067 EventAttr attr=BASE::EventAttribute(index);
1068 return attr.Forcible();
1072 TEMP bool THIS::Forcible( const std::string& rName) const {
1073 EventAttr attr=BASE::EventAttribute(rName);
1074 return attr.Forcible();
1079 FD_DG( "TcGenerator(" << this << ")::InsForcibleEvent(" << index << ")");
1082 BASE::InsEvent(index,attr);
1086 TEMP Idx THIS::InsForcibleEvent( const std::string& rName) {
1087 FD_DG( "TcGenerator(" << this << ")::InsForcibleEvent(" << rName << ")");
1090 return BASE::InsEvent(rName,attr);
1095 FD_DG( "TcGenerator(" << this << ")::InsUnforcibleEvent(" << index << ")");
1098 BASE::InsEvent(index,attr);
1102 TEMP Idx THIS::InsUnforcibleEvent( const std::string& rName) {
1103 FD_DG( "TcGenerator(" << this << ")::InsUnforcibleEvent(" << rName << ")");
1106 return BASE::InsEvent(rName,attr);
1111 FD_DG( "TcGenerator(" << this << ")::SetForcible(" << index << ")");
1112 EventAttr attr=BASE::EventAttribute(index);
1114 BASE::pAlphabet->Attribute(index,attr);
1118 TEMP void THIS::SetForcible( const std::string& rName) {
1119 FD_DG( "TcGenerator(" << this << ")::SetForcible(" << rName << ")");
1120 Idx index = BASE::EventIndex(rName);
1126 FD_DG( "TcGenerator(" << this << ")::SetForcible(rEvents)");
1127 EventSet::Iterator it;
1128 for(it=rEvents. Begin(); it!=rEvents. End(); it++) {
1135 FD_DG( "TcGenerator(" << this << ")::ClrForcible(" << index << ")");
1136 EventAttr attr=BASE::EventAttribute(index);
1138 BASE::pAlphabet->Attribute(index,attr);
1142 TEMP void THIS::ClrForcible( const std::string& rName) {
1143 FD_DG( "TcGenerator(" << this << ")::ClrForcible(" << rName << ")");
1144 Idx index = BASE::EventIndex(rName);
1150 FD_DG( "TcGenerator(" << this << ")::ClrForcible(rEvents)");
1151 EventSet::Iterator it;
1152 for(it=rEvents. Begin(); it!=rEvents. End(); it++) {
1159 FD_DG( "TcGenerator(" << this << ")::ForcibleEvents()");
1161 EventSet::Iterator it;
1162 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
1163 if(Forcible(*it)) res. Insert(*it);
1171 FD_DG( "TcGenerator(" << this << ")::UnforcibleEvents()");
1173 EventSet::Iterator it;
1174 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
1175 if(!Forcible(*it)) res. Insert(*it);
1183 EventAttr attr=BASE::EventAttribute(index);
1184 return attr.Preemptible();
1188 TEMP bool THIS::Preemptible( const std::string& rName) const {
1189 EventAttr attr=BASE::EventAttribute(rName);
1190 return attr.Preemptible();
1195 FD_DG( "TcGenerator(" << this << ")::InsPreemptibleEvent(" << index << ")");
1197 attr.SetPreemptible();
1198 BASE::InsEvent(index,attr);
1202 TEMP Idx THIS::InsPreemptibleEvent( const std::string& rName) {
1203 FD_DG( "TcGenerator(" << this << ")::InsPreemptibleEvent(" << rName << ")");
1205 attr.SetPreemptible();
1206 return BASE::InsEvent(rName,attr);
1210 TEMP void THIS::InsUnpreemptibleEvent( Idx index) {
1211 FD_DG( "TcGenerator(" << this << ")::InsUnpreemptibleEvent(" << index << ")");
1213 attr.ClrPreemptible();
1214 BASE::InsEvent(index,attr);
1218 TEMP Idx THIS::InsUnpreemptibleEvent( const std::string& rName) {
1219 FD_DG( "TcGenerator(" << this << ")::InsUnpreemptibleEvent(" << rName << ")");
1221 attr.ClrPreemptible();
1222 return BASE::InsEvent(rName,attr);
1227 FD_DG( "TcGenerator(" << this << ")::SetPreemptible(" << index << ")");
1228 EventAttr attr=BASE::EventAttribute(index);
1229 attr.SetPreemptible();
1230 BASE::pAlphabet->Attribute(index,attr);
1234 TEMP void THIS::SetPreemptible( const std::string& rName) {
1235 FD_DG( "TcGenerator(" << this << ")::SetPreemptible(" << rName << ")");
1236 Idx index = BASE::EventIndex(rName);
1237 SetPreemptible(index);
1242 FD_DG( "TcGenerator(" << this << ")::SetPreemptible(rEvents)");
1243 EventSet::Iterator it;
1244 for(it=rEvents. Begin(); it!=rEvents. End(); it++) {
1245 SetPreemptible(*it);
1251 FD_DG( "TcGenerator(" << this << ")::ClrPreemptible(" << index << ")");
1252 EventAttr attr=BASE::EventAttribute(index);
1253 attr.ClrPreemptible();
1254 BASE::pAlphabet->Attribute(index,attr);
1258 TEMP void THIS::ClrPreemptible( const std::string& rName) {
1259 FD_DG( "TcGenerator(" << this << ")::ClrPreemptible(" << rName << ")");
1260 Idx index = BASE::EventIndex(rName);
1261 ClrPreemptible(index);
1266 FD_DG( "TcGenerator(" << this << ")::ClrPreemptible(rEvents)");
1267 EventSet::Iterator it;
1268 for(it=rEvents. Begin(); it!=rEvents. End(); it++) {
1269 ClrPreemptible(*it);
1275 FD_DG( "TcGenerator(" << this << ")::PreemptibleEvents()");
1277 EventSet::Iterator it;
1278 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
1279 if(Preemptible(*it)) res. Insert(*it);
1287 FD_DG( "TcGenerator(" << this << ")::UnpreemptibleEvents()");
1289 EventSet::Iterator it;
1290 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
1291 if(!Preemptible(*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
TcGenerator< AttributeVoid, AttributeVoid, AttributeCFlags, AttributeVoid > cGenerator
TBaseVector< Alphabet > AlphabetVector
AutoRegisterType< SystemVector > gRtiSystemVector("SystemVector")
AutoRegisterType< Alphabet > gRtiAlphabet("Alphabet")
AutoRegisterType< AlphabetVector > gRtiAlphabetVector("AlphabetVector")
AutoRegisterType< System > gRtiSystem("System")
TBaseVector< cGenerator > cGeneratorVector
TaNameSet< AttributeCFlags > cEventSet
TBaseVector< cEventSet > cEventSetVector
libFAUDES 2.34g
--- 2026.04.09
--- c++ api documentaion by doxygen
|