|
|
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;
576 void InsHighlevelEvent( Idx index);
588 Idx InsHighlevelEvent( const std::string& rName);
597 void InsLowlevelEvent( Idx index);
609 Idx InsLowlevelEvent( const std::string& rName);
617 void SetHighlevel( Idx index);
625 void SetHighlevel( const std::string& rName);
633 void SetHighlevel( const EventSet& rEvents);
641 void SetLowlevel( Idx index);
649 void SetLowlevel( const std::string& rName);
657 void SetLowlevel( const EventSet& rEvents);
668 bool Highlevel( Idx index) const;
679 bool Highlevel( const std::string& rName) const;
690 bool Lowlevel( Idx index) const;
701 bool Lowlevel( const std::string& rName) const;
709 EventSet HighlevelEvents( void) const;
717 EventSet LowlevelEvents( void) const;
741#ifdef FAUDES_COMPATIBILITY
761#define THIS TcGenerator<GlobalAttr, StateAttr, EventAttr, TransAttr>
762#define BASE TaGenerator<GlobalAttr, StateAttr, EventAttr, TransAttr>
763#define TEMP template <class GlobalAttr, class StateAttr, class EventAttr, class TransAttr>
768 FD_DG( "TcGenerator(" << this << ")::TcGenerator()");
773 FD_DG( "TcGenerator(" << this << ")::TcGenerator(rOtherGen)");
778 FD_DG( "TcGenerator(" << this << ")::TcGenerator(rOtherGen)");
782TEMP THIS::TcGenerator( const std::string& rFileName) : BASE(rFileName) {
783 FD_DG( "TcGenerator(" << this << ")::TcGenerator(rFilename) : done");
788 FD_DG( "TcGenerator(" << this << ")::operator = [v]" << &rOtherGen);
789 return Copy(rOtherGen);
794 FD_DG( "TcGenerator(" << this << ")::operator = [v]" << &rOtherGen);
795 return Move(rOtherGen);
800 FD_DG( "TcGenerator(" << this << ")::Copy([type] " << &rSrc << ")");
802 if(&rSrc== static_cast<const Type* >( this)) return * this;
817 FD_DG( "TcGenerator(" << this << ")::Copy([type] " << &rSrc << "): call base");
824 FD_DG( "TcGenerator(" << this << ")::Copy([type] " << &rSrc << ")");
826 if(&rSrc== static_cast<Type* >( this)) return * this;
828 FD_DG( "TcGenerator(" << this << ")::Copy([type] " << &rSrc << "): call base");
838 res->EventSymbolTablep(BASE::mpEventSymbolTable);
839 res->mStateNamesEnabled=BASE::mStateNamesEnabled;
840 res->mReindexOnWrite=BASE::mReindexOnWrite;
855 TEMP bool THIS::Controllable( Idx index) const {
856 EventAttr attr=BASE::EventAttribute(index);
857 return attr.Controllable();
861 TEMP bool THIS::Controllable( const std::string& rName) const {
862 EventAttr attr=BASE::EventAttribute(rName);
863 return attr.Controllable();
867 TEMP void THIS::InsControllableEvent( Idx index) {
868 FD_DG( "TcGenerator(" << this << ")::InsControllableEvent(" << index << ")");
870 attr.SetControllable();
871 BASE::InsEvent(index,attr);
875 TEMP Idx THIS::InsControllableEvent( const std::string& rName) {
876 FD_DG( "TcGenerator(" << this << ")::InsControllableEvent(" << rName << ")");
878 attr.SetControllable();
879 return BASE::InsEvent(rName,attr);
883 TEMP void THIS::InsUncontrollableEvent( Idx index) {
884 FD_DG( "TcGenerator(" << this << ")::InsUncontrollableEvent(" << index << ")");
886 attr.ClrControllable();
887 BASE::InsEvent(index,attr);
891 TEMP Idx THIS::InsUncontrollableEvent( const std::string& rName) {
892 FD_DG( "TcGenerator(" << this << ")::InsUncontrollableEvent(" << rName << ")");
894 attr.ClrControllable();
895 return BASE::InsEvent(rName,attr);
900 FD_DG( "TcGenerator(" << this << ")::SetControllable(" << index << ")");
901 EventAttr attr=BASE::EventAttribute(index);
902 attr.SetControllable();
903 BASE::pAlphabet->Attribute(index,attr);
907 TEMP void THIS::SetControllable( const std::string& rName) {
908 FD_DG( "TcGenerator(" << this << ")::SetControllable(" << rName << ")");
909 Idx index = BASE::EventIndex(rName);
910 SetControllable(index);
915 FD_DG( "TcGenerator(" << this << ")::SetControllable(rEvents)");
916 EventSet::Iterator it;
917 for(it=rEvents. Begin(); it!=rEvents. End(); it++) {
918 SetControllable(*it);
924 FD_DG( "TcGenerator(" << this << ")::ClrControllable(" << index << ")");
925 EventAttr attr=BASE::EventAttribute(index);
926 attr.ClrControllable();
927 BASE::pAlphabet->Attribute(index,attr);
931 TEMP void THIS::ClrControllable( const std::string& rName) {
932 FD_DG( "TcGenerator(" << this << ")::ClrControllable(" << rName << ")");
933 Idx index = BASE::EventIndex(rName);
934 ClrControllable(index);
939 FD_DG( "TcGenerator(" << this << ")::ClrControllable(rEvents)");
940 EventSet::Iterator it;
941 for(it=rEvents. Begin(); it!=rEvents. End(); it++) {
942 ClrControllable(*it);
948 FD_DG( "TcGenerator(" << this << ")::ControllableEvents()");
950 EventSet::Iterator it;
951 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
952 if(Controllable(*it)) res. Insert(*it);
960 FD_DG( "TcGenerator(" << this << ")::UncontrollableEvents()");
962 EventSet::Iterator it;
963 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
964 if(!Controllable(*it)) res. Insert(*it);
971 EventAttr attr=BASE::EventAttribute(index);
972 return attr.Observable();
976 TEMP bool THIS::Observable( const std::string& rName) const {
977 EventAttr attr=BASE::EventAttribute(rName);
978 return attr.Observable();
982 TEMP void THIS::InsObservableEvent( Idx index) {
983 FD_DG( "TcGenerator(" << this << ")::InsObservableEvent(" << index << ")");
985 attr.SetObservable();
986 BASE::InsEvent(index,attr);
990 TEMP Idx THIS::InsObservableEvent( const std::string& rName) {
991 FD_DG( "TcGenerator(" << this << ")::InsObservableEvent(" << rName << ")");
993 attr.SetObservable();
994 return BASE::InsEvent(rName,attr);
998 TEMP void THIS::InsUnobservableEvent( Idx index) {
999 FD_DG( "TcGenerator(" << this << ")::InsUnobservableEvent(" << index << ")");
1001 attr.ClrObservable();
1002 BASE::InsEvent(index,attr);
1006 TEMP Idx THIS::InsUnobservableEvent( const std::string& rName) {
1007 FD_DG( "TcGenerator(" << this << ")::InsUnobservableEvent(" << rName << ")");
1009 attr.ClrObservable();
1010 return BASE::InsEvent(rName,attr);
1015 FD_DG( "TcGenerator(" << this << ")::SetObservable(" << index << ")");
1016 EventAttr attr=BASE::EventAttribute(index);
1017 attr.SetObservable();
1018 BASE::pAlphabet->Attribute(index,attr);
1022 TEMP void THIS::SetObservable( const std::string& rName) {
1023 FD_DG( "TcGenerator(" << this << ")::SetObservable(" << rName << ")");
1024 Idx index = BASE::EventIndex(rName);
1025 SetObservable(index);
1030 FD_DG( "TcGenerator(" << this << ")::SetObservable(rEvents)");
1031 EventSet::Iterator it;
1032 for(it=rEvents. Begin(); it!=rEvents. End(); it++) {
1039 FD_DG( "TcGenerator(" << this << ")::ClrObservable(" << index << ")");
1040 EventAttr attr=BASE::EventAttribute(index);
1041 attr.ClrObservable();
1042 BASE::pAlphabet->Attribute(index,attr);
1046 TEMP void THIS::ClrObservable( const std::string& rName) {
1047 FD_DG( "TcGenerator(" << this << ")::ClrObservable(" << rName << ")");
1048 Idx index = BASE::EventIndex(rName);
1049 ClrObservable(index);
1054 FD_DG( "TcGenerator(" << this << ")::ClrObservable(rEvents)");
1055 EventSet::Iterator it;
1056 for(it=rEvents. Begin(); it!=rEvents. End(); it++) {
1063 FD_DG( "TcGenerator(" << this << ")::ObservableEvents()");
1065 EventSet::Iterator it;
1066 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
1067 if(Observable(*it)) res. Insert(*it);
1075 FD_DG( "TcGenerator(" << this << ")::UnobservableEvents()");
1077 EventSet::Iterator it;
1078 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
1079 if(!Observable(*it)) res. Insert(*it);
1087 EventAttr attr=BASE::EventAttribute(index);
1088 return attr.Forcible();
1092 TEMP bool THIS::Forcible( const std::string& rName) const {
1093 EventAttr attr=BASE::EventAttribute(rName);
1094 return attr.Forcible();
1099 FD_DG( "TcGenerator(" << this << ")::InsForcibleEvent(" << index << ")");
1102 BASE::InsEvent(index,attr);
1106 TEMP Idx THIS::InsForcibleEvent( const std::string& rName) {
1107 FD_DG( "TcGenerator(" << this << ")::InsForcibleEvent(" << rName << ")");
1110 return BASE::InsEvent(rName,attr);
1115 FD_DG( "TcGenerator(" << this << ")::InsUnforcibleEvent(" << index << ")");
1118 BASE::InsEvent(index,attr);
1122 TEMP Idx THIS::InsUnforcibleEvent( const std::string& rName) {
1123 FD_DG( "TcGenerator(" << this << ")::InsUnforcibleEvent(" << rName << ")");
1126 return BASE::InsEvent(rName,attr);
1131 FD_DG( "TcGenerator(" << this << ")::SetForcible(" << index << ")");
1132 EventAttr attr=BASE::EventAttribute(index);
1134 BASE::pAlphabet->Attribute(index,attr);
1138 TEMP void THIS::SetForcible( const std::string& rName) {
1139 FD_DG( "TcGenerator(" << this << ")::SetForcible(" << rName << ")");
1140 Idx index = BASE::EventIndex(rName);
1146 FD_DG( "TcGenerator(" << this << ")::SetForcible(rEvents)");
1147 EventSet::Iterator it;
1148 for(it=rEvents. Begin(); it!=rEvents. End(); it++) {
1155 FD_DG( "TcGenerator(" << this << ")::ClrForcible(" << index << ")");
1156 EventAttr attr=BASE::EventAttribute(index);
1158 BASE::pAlphabet->Attribute(index,attr);
1162 TEMP void THIS::ClrForcible( const std::string& rName) {
1163 FD_DG( "TcGenerator(" << this << ")::ClrForcible(" << rName << ")");
1164 Idx index = BASE::EventIndex(rName);
1170 FD_DG( "TcGenerator(" << this << ")::ClrForcible(rEvents)");
1171 EventSet::Iterator it;
1172 for(it=rEvents. Begin(); it!=rEvents. End(); it++) {
1179 FD_DG( "TcGenerator(" << this << ")::ForcibleEvents()");
1181 EventSet::Iterator it;
1182 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
1183 if(Forcible(*it)) res. Insert(*it);
1191 FD_DG( "TcGenerator(" << this << ")::UnforcibleEvents()");
1193 EventSet::Iterator it;
1194 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
1195 if(!Forcible(*it)) res. Insert(*it);
1203 EventAttr attr=BASE::EventAttribute(index);
1204 return attr.Highlevel();
1208 TEMP bool THIS::Highlevel( const std::string& rName) const {
1209 EventAttr attr=BASE::EventAttribute(rName);
1210 return attr.Highlevel();
1215 EventAttr attr=BASE::EventAttribute(index);
1216 return attr.Lowlevel();
1220 TEMP bool THIS::Lowlevel( const std::string& rName) const {
1221 EventAttr attr=BASE::EventAttribute(rName);
1222 return attr.Lowlevel();
1227 FD_DG( "TcGenerator(" << this << ")::InsHighlevelEvent(" << index << ")");
1229 attr.SetHighlevel();
1230 BASE::InsEvent(index,attr);
1234 TEMP Idx THIS::InsHighlevelEvent( const std::string& rName) {
1235 FD_DG( "TcGenerator(" << this << ")::InsHighlevelEvent(" << rName << ")");
1237 attr.SetHighlevel();
1238 return BASE::InsEvent(rName,attr);
1243 FD_DG( "TcGenerator(" << this << ")::InsLowlevelEvent(" << index << ")");
1246 BASE::InsEvent(index,attr);
1250 TEMP Idx THIS::InsLowlevelEvent( const std::string& rName) {
1251 FD_DG( "TcGenerator(" << this << ")::InsLowlevelEvent(" << rName << ")");
1254 return BASE::InsEvent(rName,attr);
1259 FD_DG( "TcGenerator(" << this << ")::SetHighlevel(" << index << ")");
1260 EventAttr attr=BASE::EventAttribute(index);
1261 attr.SetHighlevel();
1262 BASE::pAlphabet->Attribute(index,attr);
1266 TEMP void THIS::SetHighlevel( const std::string& rName) {
1267 FD_DG( "TcGenerator(" << this << ")::SetHighlevel(" << rName << ")");
1268 Idx index = BASE::EventIndex(rName);
1269 SetHighlevel(index);
1274 FD_DG( "TcGenerator(" << this << ")::SetHighlevel(rEvents)");
1275 EventSet::Iterator it;
1276 for(it=rEvents. Begin(); it!=rEvents. End(); it++) {
1283 FD_DG( "TcGenerator(" << this << ")::SetLowlevel(" << index << ")");
1284 EventAttr attr=BASE::EventAttribute(index);
1286 BASE::pAlphabet->Attribute(index,attr);
1290 TEMP void THIS::SetLowlevel( const std::string& rName) {
1291 FD_DG( "TcGenerator(" << this << ")::SetLowlevel(" << rName << ")");
1292 Idx index = BASE::EventIndex(rName);
1298 FD_DG( "TcGenerator(" << this << ")::SetLowlevel(rEvents)");
1299 EventSet::Iterator it;
1300 for(it=rEvents. Begin(); it!=rEvents. End(); it++) {
1307 FD_DG( "TcGenerator(" << this << ")::HighlevelEvents()");
1309 EventSet::Iterator it;
1310 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
1311 if(Highlevel(*it)) res. Insert(*it);
1318 FD_DG( "TcGenerator(" << this << ")::LowlevelEvents()");
1320 EventSet::Iterator it;
1321 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
1322 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
TcGenerator< AttributeVoid, AttributeVoid, AttributeCFlags, AttributeVoid > cGenerator
TBaseVector< Alphabet > AlphabetVector
TBaseVector< cGenerator > cGeneratorVector
TaNameSet< AttributeCFlags > cEventSet
TBaseVector< cEventSet > cEventSetVector
libFAUDES 2.34d
--- 2026.03.11
--- c++ api documentaion by doxygen
|