11 #ifndef FAUDES_HIO_ENVIRONMENT_H
12 #define FAUDES_HIO_ENVIRONMENT_H
46 template <
class GlobalAttr,
class StateAttr,
class EventAttr,
class TransAttr>
191 void SetYe(
const std::string& rName);
215 void SetUe(
const std::string& rName);
245 bool IsYe(
const std::string& rName)
const;
267 bool IsUe(
const std::string& rName)
const;
341 void SetYl(
const std::string& rName);
365 void SetUl(
const std::string& rName);
395 bool IsYl(
const std::string& rName)
const;
417 bool IsUl(
const std::string& rName)
const;
457 bool IsY(
const std::string& rName)
const;
487 bool IsU(
const std::string& rName)
const;
517 bool IsE(
const std::string& rName)
const;
547 bool IsL(
const std::string& rName)
const;
627 bool IsQYe(
const std::string& rName)
const;
703 bool IsQUe(
const std::string& rName)
const;
779 bool IsQUl(
const std::string& rName)
const;
931 bool IsErr(
const std::string& rName)
const;
959 #define THIS THioEnvironment<GlobalAttr, StateAttr, EventAttr, TransAttr>
960 #define BASE TaGenerator<GlobalAttr, StateAttr, EventAttr, TransAttr>
961 #define TEMP template <class GlobalAttr, class StateAttr, class EventAttr, class TransAttr>
966 FD_DG(
"HioEnvironment(" <<
this <<
")::HioEnvironment()");
971 FD_DG(
"HioEnvironment(" <<
this <<
")::HioEnvironment(rOtherGen)");
976 FD_DG(
"HioEnvironment(" <<
this <<
")::HioEnvironment(rOtherGen)");
986 ) :
BASE(rOtherGen) {
987 FD_DG(
"HioEnvironment(" <<
this <<
")::HioEnvironment(rOtherGen)");
995 TEMP THIS::THioEnvironment(
const std::string& rFileName) :
BASE(rFileName) {
996 FD_DG(
"HioEnvironment(" <<
this <<
")::HioEnvironment(rFilename) : done");
1004 res->EventSymbolTablep(BASE::mpEventSymbolTable);
1005 res->mStateNamesEnabled=BASE::mStateNamesEnabled;
1011 return new THIS(*
this);
1017 THIS res= BASE::NewAGen();
1025 EventAttr attr=BASE::EventAttribute(index);
1030 TEMP bool THIS::IsY(
const std::string& rName)
const {
1031 EventAttr attr=BASE::EventAttribute(rName);
1037 EventAttr attr=BASE::EventAttribute(index);
1042 TEMP bool THIS::IsU(
const std::string& rName)
const {
1043 EventAttr attr=BASE::EventAttribute(rName);
1049 FD_DG(
"HioEnvironment(" <<
this <<
")::YEvents()");
1051 EventSet::Iterator it;
1052 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
1053 if(IsY(*it)) res.
Insert(*it);
1060 FD_DG(
"HioEnvironment(" <<
this <<
")::UEvents()");
1062 EventSet::Iterator it;
1063 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
1064 if(IsU(*it)) res.
Insert(*it);
1073 FD_DG(
"HioEnvironment(" <<
this <<
")::InsYeEvent(" << index <<
")");
1077 BASE::InsEvent(index,attr);
1081 TEMP Idx THIS::InsYeEvent(
const std::string& rName) {
1082 FD_DG(
"HioEnvironment(" <<
this <<
")::InsYeEvent(" << rName <<
")");
1086 return BASE::InsEvent(rName,attr);
1091 FD_DG(
"HioEnvironment(" <<
this <<
")::InsUeEvent(" << index <<
")");
1095 BASE::InsEvent(index,attr);
1099 TEMP Idx THIS::InsUeEvent(
const std::string& rName) {
1100 FD_DG(
"HioEnvironment(" <<
this <<
")::InsUeEvent(" << rName <<
")");
1104 return BASE::InsEvent(rName,attr);
1109 FD_DG(
"HioEnvironment(" <<
this <<
")::SetYe(" << index <<
")");
1110 EventAttr attr=BASE::EventAttribute(index);
1113 BASE::pAlphabet->Attribute(index,attr);
1117 TEMP void THIS::SetYe(
const std::string& rName) {
1118 FD_DG(
"HioEnvironment(" <<
this <<
")::SetYe(" << rName <<
")");
1119 Idx index = BASE::EventIndex(rName);
1125 FD_DG(
"HioEnvironment(" <<
this <<
")::SetYe(rEvents)");
1126 EventSet::Iterator it;
1127 for(it=rEvents.
Begin(); it!=rEvents.
End(); it++) {
1134 FD_DG(
"HioEnvironment(" <<
this <<
")::SetUe(" << index <<
")");
1135 EventAttr attr=BASE::EventAttribute(index);
1138 BASE::pAlphabet->Attribute(index,attr);
1142 TEMP void THIS::SetUe(
const std::string& rName) {
1143 FD_DG(
"HioEnvironment(" <<
this <<
")::SetUe(" << rName <<
")");
1144 Idx index = BASE::EventIndex(rName);
1150 FD_DG(
"HioEnvironment(" <<
this <<
")::SetUe(rEvents)");
1151 EventSet::Iterator it;
1152 for(it=rEvents.
Begin(); it!=rEvents.
End(); it++) {
1159 EventAttr attr=BASE::EventAttribute(index);
1160 return (attr.IsY() && attr.IsE());
1164 TEMP bool THIS::IsYe(
const std::string& rName)
const {
1165 EventAttr attr=BASE::EventAttribute(rName);
1166 return (attr.IsY() && attr.IsE());
1171 EventAttr attr=BASE::EventAttribute(index);
1172 return (attr.IsU() && attr.IsE());
1176 TEMP bool THIS::IsUe(
const std::string& rName)
const {
1177 EventAttr attr=BASE::EventAttribute(rName);
1178 return (attr.IsU() && attr.IsE());
1183 FD_DG(
"HioEnvironment(" <<
this <<
")::YeEvents()");
1185 EventSet::Iterator it;
1186 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
1187 if(IsYe(*it)) res.
Insert(*it);
1194 FD_DG(
"HioEnvironment(" <<
this <<
")::UeEvents()");
1196 EventSet::Iterator it;
1197 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
1198 if(IsUe(*it)) res.
Insert(*it);
1207 FD_DG(
"HioEnvironment(" <<
this <<
")::InsYlEvent(" << index <<
")");
1211 BASE::InsEvent(index,attr);
1215 TEMP Idx THIS::InsYlEvent(
const std::string& rName) {
1216 FD_DG(
"HioEnvironment(" <<
this <<
")::InsYlEvent(" << rName <<
")");
1220 return BASE::InsEvent(rName,attr);
1225 FD_DG(
"HioEnvironment(" <<
this <<
")::InsUlEvent(" << index <<
")");
1229 BASE::InsEvent(index,attr);
1233 TEMP Idx THIS::InsUlEvent(
const std::string& rName) {
1234 FD_DG(
"HioEnvironment(" <<
this <<
")::InsUlEvent(" << rName <<
")");
1238 return BASE::InsEvent(rName,attr);
1243 FD_DG(
"HioEnvironment(" <<
this <<
")::SetYl(" << index <<
")");
1244 EventAttr attr=BASE::EventAttribute(index);
1247 BASE::pAlphabet->Attribute(index,attr);
1251 TEMP void THIS::SetYl(
const std::string& rName) {
1252 FD_DG(
"HioEnvironment(" <<
this <<
")::SetYl(" << rName <<
")");
1253 Idx index = BASE::EventIndex(rName);
1259 FD_DG(
"HioEnvironment(" <<
this <<
")::SetYl(rEvents)");
1260 EventSet::Iterator it;
1261 for(it=rEvents.
Begin(); it!=rEvents.
End(); it++) {
1268 FD_DG(
"HioEnvironment(" <<
this <<
")::SetUl(" << index <<
")");
1269 EventAttr attr=BASE::EventAttribute(index);
1272 BASE::pAlphabet->Attribute(index,attr);
1276 TEMP void THIS::SetUl(
const std::string& rName) {
1277 FD_DG(
"HioEnvironment(" <<
this <<
")::SetUl(" << rName <<
")");
1278 Idx index = BASE::EventIndex(rName);
1284 FD_DG(
"HioEnvironment(" <<
this <<
")::SetUl(rEvents)");
1285 EventSet::Iterator it;
1286 for(it=rEvents.
Begin(); it!=rEvents.
End(); it++) {
1293 EventAttr attr=BASE::EventAttribute(index);
1294 return (attr.IsY() && attr.IsL());
1298 TEMP bool THIS::IsYl(
const std::string& rName)
const {
1299 EventAttr attr=BASE::EventAttribute(rName);
1300 return (attr.IsY() && attr.IsL());
1305 EventAttr attr=BASE::EventAttribute(index);
1306 return (attr.IsU() && attr.IsL());
1310 TEMP bool THIS::IsUl(
const std::string& rName)
const {
1311 EventAttr attr=BASE::EventAttribute(rName);
1312 return (attr.IsU() && attr.IsL());
1317 FD_DG(
"HioEnvironment(" <<
this <<
")::YlEvents()");
1319 EventSet::Iterator it;
1320 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
1321 if(IsYl(*it)) res.
Insert(*it);
1328 FD_DG(
"HioEnvironment(" <<
this <<
")::UlEvents()");
1330 EventSet::Iterator it;
1331 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
1332 if(IsUl(*it)) res.
Insert(*it);
1341 EventAttr attr=BASE::EventAttribute(index);
1346 TEMP bool THIS::IsE(
const std::string& rName)
const {
1347 EventAttr attr=BASE::EventAttribute(rName);
1353 EventAttr attr=BASE::EventAttribute(index);
1358 TEMP bool THIS::IsL(
const std::string& rName)
const {
1359 EventAttr attr=BASE::EventAttribute(rName);
1365 FD_DG(
"HioEnvironment(" <<
this <<
")::EEvents()");
1367 EventSet::Iterator it;
1368 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
1369 if(IsE(*it)) res.
Insert(*it);
1376 FD_DG(
"HioEnvironment(" <<
this <<
")::EEvents()");
1378 EventSet::Iterator it;
1379 for(it=BASE::AlphabetBegin(); it!=BASE::AlphabetEnd(); it++) {
1380 if(IsL(*it)) res.
Insert(*it);
1393 FD_DG(
"HioEnvironment(" <<
this <<
")::SetQYe(" << index <<
")");
1394 StateAttr attr=BASE::StateAttribute(index);
1403 BASE::pStates->Attribute(index,attr);
1407 TEMP void THIS::SetQYe(
const std::string& rName) {
1408 FD_DG(
"HioEnvironment(" <<
this <<
")::SetQYe(" << rName <<
")");
1409 Idx index = BASE::StateIndex(rName);
1415 FD_DG(
"HioEnvironment(" <<
this <<
")::SetQYe(rStates)");
1416 StateSet::Iterator sit;
1417 for(sit=rStates.
Begin(); sit!=rStates.
End(); sit++) {
1424 FD_DG(
"HioEnvironment(" <<
this <<
")::ClrQYe(" << index <<
")");
1425 StateAttr attr=BASE::StateAttribute(index);
1428 BASE::pStates->Attribute(index,attr);
1432 TEMP void THIS::ClrQYe(
const std::string& rName) {
1433 FD_DG(
"HioEnvironment(" <<
this <<
")::ClrQYe(" << rName <<
")");
1434 Idx index = BASE::StateIndex(rName);
1440 FD_DG(
"HioEnvironment(" <<
this <<
")::ClrQYe(rStates)");
1441 StateSet::Iterator sit;
1442 for(sit=rStates.
Begin(); sit!=rStates.
End(); sit++) {
1449 StateAttr attr=BASE::StateAttribute(index);
1450 return attr.IsQY() && attr.IsQE() && attr.IsQL();
1454 TEMP bool THIS::IsQYe(
const std::string& rName)
const {
1455 Idx index = BASE::StateIndex(rName);
1456 return IsQYe(index);
1461 FD_DG(
"HioEnvironment(" <<
this <<
")::QYeStates()");
1463 StateSet::Iterator sit;
1464 for(sit=BASE::StatesBegin(); sit!=BASE::StatesEnd(); sit++) {
1465 if(IsQYe(*sit)) res.
Insert(*sit);
1473 FD_DG(
"HioEnvironment(" <<
this <<
")::SetQUe(" << index <<
")");
1474 StateAttr attr=BASE::StateAttribute(index);
1483 BASE::pStates->Attribute(index,attr);
1487 TEMP void THIS::SetQUe(
const std::string& rName) {
1488 FD_DG(
"HioEnvironment(" <<
this <<
")::SetQUe(" << rName <<
")");
1489 Idx index = BASE::StateIndex(rName);
1495 FD_DG(
"HioEnvironment(" <<
this <<
")::SetQUe(rStates)");
1496 StateSet::Iterator sit;
1497 for(sit=rStates.
Begin(); sit!=rStates.
End(); sit++) {
1504 FD_DG(
"HioEnvironment(" <<
this <<
")::ClrQUe(" << index <<
")");
1505 StateAttr attr=BASE::StateAttribute(index);
1508 BASE::pStates->Attribute(index,attr);
1512 TEMP void THIS::ClrQUe(
const std::string& rName) {
1513 FD_DG(
"HioEnvironment(" <<
this <<
")::ClrQUe(" << rName <<
")");
1514 Idx index = BASE::StateIndex(rName);
1520 FD_DG(
"HioEnvironment(" <<
this <<
")::ClrQUe(rStates)");
1521 StateSet::Iterator sit;
1522 for(sit=rStates.
Begin(); sit!=rStates.
End(); sit++) {
1529 StateAttr attr=BASE::StateAttribute(index);
1530 return attr.IsQU() && attr.IsQE();
1534 TEMP bool THIS::IsQUe(
const std::string& rName)
const {
1535 Idx index = BASE::StateIndex(rName);
1536 return IsQUe(index);
1541 FD_DG(
"HioEnvironment(" <<
this <<
")::QUeStates()");
1543 StateSet::Iterator sit;
1544 for(sit=BASE::StatesBegin(); sit!=BASE::StatesEnd(); sit++) {
1545 if(IsQUe(*sit)) res.
Insert(*sit);
1555 FD_DG(
"HioEnvironment(" <<
this <<
")::SetQUl(" << index <<
")");
1556 StateAttr attr=BASE::StateAttribute(index);
1565 BASE::pStates->Attribute(index,attr);
1569 TEMP void THIS::SetQUl(
const std::string& rName) {
1570 FD_DG(
"HioEnvironment(" <<
this <<
")::SetQUl(" << rName <<
")");
1571 Idx index = BASE::StateIndex(rName);
1577 FD_DG(
"HioEnvironment(" <<
this <<
")::SetQUl(rStates)");
1578 StateSet::Iterator sit;
1579 for(sit=rStates.
Begin(); sit!=rStates.
End(); sit++) {
1586 FD_DG(
"HioEnvironment(" <<
this <<
")::ClrQUl(" << index <<
")");
1587 StateAttr attr=BASE::StateAttribute(index);
1590 BASE::pStates->Attribute(index,attr);
1594 TEMP void THIS::ClrQUl(
const std::string& rName) {
1595 FD_DG(
"HioEnvironment(" <<
this <<
")::ClrQUl(" << rName <<
")");
1596 Idx index = BASE::StateIndex(rName);
1602 FD_DG(
"HioEnvironment(" <<
this <<
")::ClrQUl(rStates)");
1603 StateSet::Iterator sit;
1604 for(sit=rStates.
Begin(); sit!=rStates.
End(); sit++) {
1611 StateAttr attr=BASE::StateAttribute(index);
1612 return attr.IsQU() && attr.IsQL();
1616 TEMP bool THIS::IsQUl(
const std::string& rName)
const {
1617 Idx index = BASE::StateIndex(rName);
1618 return IsQUl(index);
1623 FD_DG(
"HioEnvironment(" <<
this <<
")::QUlStates()");
1625 StateSet::Iterator sit;
1626 for(sit=BASE::StatesBegin(); sit!=BASE::StatesEnd(); sit++) {
1627 if(IsQUl(*sit)) res.
Insert(*sit);
1636 FD_DG(
"HioEnvironment(" <<
this <<
")::SetQYlUe(" << index <<
")");
1637 StateAttr attr=BASE::StateAttribute(index);
1646 BASE::pStates->Attribute(index,attr);
1650 TEMP void THIS::SetQYlUe(
const std::string& rName) {
1651 FD_DG(
"HioEnvironment(" <<
this <<
")::SetQYlUe(" << rName <<
")");
1652 Idx index = BASE::StateIndex(rName);
1658 FD_DG(
"HioEnvironment(" <<
this <<
")::SetQYlUe(rStates)");
1659 StateSet::Iterator sit;
1660 for(sit=rStates.
Begin(); sit!=rStates.
End(); sit++) {
1667 FD_DG(
"HioEnvironment(" <<
this <<
")::ClrQYlUe(" << index <<
")");
1668 StateAttr attr=BASE::StateAttribute(index);
1670 BASE::pStates->Attribute(index,attr);
1674 TEMP void THIS::ClrQYlUe(
const std::string& rName) {
1675 FD_DG(
"HioEnvironment(" <<
this <<
")::ClrQYlUe(" << rName <<
")");
1676 Idx index = BASE::StateIndex(rName);
1682 FD_DG(
"HioEnvironment(" <<
this <<
")::ClrQYlUe(rStates)");
1683 StateSet::Iterator sit;
1684 for(sit=rStates.
Begin(); sit!=rStates.
End(); sit++) {
1691 StateAttr attr=BASE::StateAttribute(index);
1692 return attr.IsQYlUe();
1696 TEMP bool THIS::IsQYlUe(
const std::string& rName)
const {
1697 Idx index = BASE::StateIndex(rName);
1698 return IsQYlUe(index);
1703 FD_DG(
"HioEnvironment(" <<
this <<
")::QYlUeStates()");
1705 StateSet::Iterator sit;
1706 for(sit=BASE::StatesBegin(); sit!=BASE::StatesEnd(); sit++) {
1707 if(IsQYlUe(*sit)) res.
Insert(*sit);
1714 FD_DG(
"HioPlant(" <<
this <<
")::SetErr(" << index <<
")");
1715 StateAttr attr=BASE::StateAttribute(index);
1717 BASE::pStates->Attribute(index,attr);
1721 TEMP void THIS::SetErr(
const std::string& rName) {
1722 FD_DG(
"HioPlant(" <<
this <<
")::SetErr(" << rName <<
")");
1723 Idx index = BASE::StateIndex(rName);
1729 FD_DG(
"HioPlant(" <<
this <<
")::SetErr(rStates)");
1730 StateSet::Iterator sit;
1731 for(sit=rStates.
Begin(); sit!=rStates.
End(); sit++) {
1738 FD_DG(
"HioPlant(" <<
this <<
")::ClrErr(" << index <<
")");
1739 StateAttr attr=BASE::StateAttribute(index);
1741 BASE::pStates->Attribute(index,attr);
1745 TEMP void THIS::ClrErr(
const std::string& rName) {
1746 FD_DG(
"HioPlant(" <<
this <<
")::ClrErr(" << rName <<
")");
1747 Idx index = BASE::StateIndex(rName);
1753 FD_DG(
"HioPlant(" <<
this <<
")::ClrErr(rStates)");
1754 StateSet::Iterator sit;
1755 for(sit=rStates.
Begin(); sit!=rStates.
End(); sit++) {
1762 StateAttr attr=BASE::StateAttribute(index);
1763 return attr.IsErr();
1767 TEMP bool THIS::IsErr(
const std::string& rName)
const {
1768 Idx index = BASE::StateIndex(rName);
1769 return IsErr(index);
1774 FD_DG(
"HioPlant(" <<
this <<
")::ErrStates()");
1776 StateSet::Iterator sit;
1777 for(sit=BASE::StatesBegin(); sit!=BASE::StatesEnd(); sit++) {
1778 if(IsErr(*sit)) res.
Insert(*sit);
1832 std::string& rReportStr);
1888 #define HIOENVIRONMENT_H
#define FD_DG(message)
Debug: optional report on generator operations.
Idx Insert(void)
Insert new index to set.
Set of indices with symbolic names.
bool Insert(const Idx &rIndex)
Add an element by index.
Generator with I/O-environment attributes.
void InsYeEvent(Idx index)
Add an existing Ye-event to generator.
void SetQYe(const std::string &rName)
Mark state as QYe-state (by name)
Idx InsUeEvent(const std::string &rName)
Add new named Ue-event to generator.
void SetErr(const StateSet &rStates)
Mark set of states as Err-states.
void SetUl(Idx index)
Mark event as Ul-event (by index)
void SetYl(const std::string &rName)
Mark event as Yl-event (by name)
bool IsUl(const std::string &rName) const
Is event Ul-event (by name)
void InsUeEvent(Idx index)
Add an existing Ue-event to generator.
void SetYe(Idx index)
Mark event as Ye-event (by index)
bool IsU(const std::string &rName) const
Is event U-event? (by name)
void ClrQUl(const StateSet &rStates)
Mark set of states as NOT QUl-states (by index)
virtual THioEnvironment * Copy(void) const
Construct copy on heap.
void InsUlEvent(Idx index)
Add an existing Ul-event to generator.
void SetQUe(Idx index)
Mark event as QUe-state (by index)
void SetQUe(const std::string &rName)
Mark state as QUe-state (by name)
EventSet YEvents(void) const
Get EventSet with Y-events.
void SetQYe(Idx index)
Mark event as QYe-state (by index)
void SetQYe(const StateSet &rStates)
Mark set of states as QYe-states.
bool IsL(Idx index) const
Is event E-event? (by index)
bool IsQYe(Idx index) const
Is state QYe-state (by index)
EventSet UeEvents(void) const
Get EventSet with Ue-events.
void SetUe(const std::string &rName)
Mark event Ue-event(by name)
bool IsQYlUe(Idx index) const
Is state QYlUe-state (by index)
bool IsUl(Idx index) const
Is event Ul-event (by index)
void SetYl(Idx index)
Mark event as Yl-event (by index)
EventSet YeEvents(void) const
Get EventSet with Ye-events.
bool IsL(const std::string &rName) const
Is event E-event? (by name)
void SetQYlUe(const StateSet &rStates)
Mark set of states as QYlUe-states.
THioEnvironment(const Generator &rOtherGen, const EventSet &rYl, const EventSet &rUl, const EventSet &rYe, const EventSet &rUe)
HioEnvironment from a std Generator and event sets.
bool IsYl(const std::string &rName) const
Is event Yl-event (by name)
bool IsYe(Idx index) const
Is event Ye-event(by index)
StateSet QYeStates(void) const
Get StateSet with QYe-states.
bool IsQUl(const std::string &rName) const
Is state QUl-state (by name)
void SetYe(const std::string &rName)
Mark event as Ye-event(by name)
THioEnvironment(void)
Creates an empty HioEnvironment object.
EventSet LEvents(void) const
Get EventSet with E-events.
void SetYe(const EventSet &rEvents)
Mark set of events as Ye-events.
bool IsErr(const std::string &rName) const
Is state Err-state (by name)
virtual bool UpdateAttributes(void)
Updates internal attributes.
void SetQUl(const StateSet &rStates)
Mark set of states as QUl-states.
void ClrQUl(const std::string &rName)
Mark state as NOT QUl-state (by name)
bool IsQUe(const std::string &rName) const
Is state QUe-state (by name)
Idx InsYlEvent(const std::string &rName)
Add new named Yl-event to generator.
void ClrErr(Idx index)
Mark state as NOT Err-state (by index)
bool IsYl(Idx index) const
Is event Yl-event (by index)
void ClrQUe(Idx index)
Mark state as NOT QUe-state (by index)
void SetQUl(Idx index)
Mark event as QUl-state (by index)
bool IsQUe(Idx index) const
Is state QUe-state (by index)
bool IsQYe(const std::string &rName) const
Is state QYe-state (by name)
void SetQUl(const std::string &rName)
Mark state as QUl-state (by name)
EventSet UlEvents(void) const
Get EventSet with Ul-events.
bool IsQUl(Idx index) const
Is state QUl-state (by index)
void ClrQUl(Idx index)
Mark state as NOT QUl-state (by index)
void SetErr(Idx index)
Mark state as Err-state (by index)
bool IsErr(Idx index) const
Is state Err-state (by index)
EventSet UEvents(void) const
Get EventSet with U-events.
bool IsUe(Idx index) const
Is event Ue-event(by index)
void ClrQUe(const StateSet &rStates)
Mark set of states as NOT QUe-states (by index)
void InsYlEvent(Idx index)
Add an existing Yl-event to generator.
bool IsU(Idx index) const
Is event U-event? (by index)
void SetUl(const std::string &rName)
Mark event as Ul-event (by name)
void ClrQYe(Idx index)
Mark state as NOT QYe-state (by index)
bool IsY(const std::string &rName) const
Is event Y-event? (by name)
bool IsY(Idx index) const
Is event Y-event? (by index)
Idx InsYeEvent(const std::string &rName)
Add new named Ye-event to generator.
void SetQYlUe(const std::string &rName)
Mark state as QYlUe-state (by name)
StateSet QYlUeStates(void) const
Get StateSet with QYlUe-states.
void SetUl(const EventSet &rEvents)
Mark set of events as Ul-events.
bool IsUe(const std::string &rName) const
Is event Ue-event(by name)
StateSet QUlStates(void) const
Get StateSet with QUl-states.
StateSet ErrStates(void) const
Get StateSet with Err-states.
void ClrQYlUe(const std::string &rName)
Mark state as NOT QYlUe-state (by name)
THioEnvironment(const std::string &rFileName)
construct a HioEnvironment from file
void SetUe(const EventSet &rEvents)
Mark set of events as Ue-events.
void ClrQYlUe(Idx index)
Mark state as NOT QYlUe-state (by index)
void SetQUe(const StateSet &rStates)
Mark set of states as QUe-states.
THioEnvironment(const Generator &rOtherGen)
HioEnvironment from a std Generator.
bool IsE(const std::string &rName) const
Is event P-event? (by name)
EventSet YlEvents(void) const
Get EventSet with Yl-events.
THioEnvironment NewHioEnvironment(void) const
Create empty HioEnvironment with same symboltable as this.
void ClrErr(const StateSet &rStates)
Mark set of states as NOT Err-states (by index)
THioEnvironment * New(void) const
Construct on heap.
void ClrErr(const std::string &rName)
Mark state as NOT Err-state (by name)
THioEnvironment(const THioEnvironment &rOtherGen)
HioEnvironment from a HioEnvironment.
EventSet EEvents(void) const
Get EventSet with P-events.
void ClrQYe(const StateSet &rStates)
Mark set of states as NOT QYe-states (by index)
void ClrQYe(const std::string &rName)
Mark state as NOT QYe-state (by name)
StateSet QUeStates(void) const
Get StateSet with QUe-states.
bool IsYe(const std::string &rName) const
Is event Ye-event(by name)
Idx InsUlEvent(const std::string &rName)
Add new named Ul-event to generator.
void SetYl(const EventSet &rEvents)
Mark set of events as Yl-events.
void SetErr(const std::string &rName)
Mark state as Err-state (by name)
void SetUe(Idx index)
Mark event Ue-event(by index)
bool IsE(Idx index) const
Is event P-event? (by index)
void ClrQUe(const std::string &rName)
Mark state as NOT QUe-state (by name)
void ClrQYlUe(const StateSet &rStates)
Mark set of states as NOT QYlUe-states (by index)
bool IsQYlUe(const std::string &rName) const
Is state QYlUe-state (by name)
void SetQYlUe(Idx index)
Mark event as QYlUe-state (by index)
Generator with specified attribute types.
Base class of all FAUDES generators.
Includes all libFAUDES headers, no plugins.
Iterator End(void) const
Iterator to the end of set.
Iterator Begin(void) const
Iterator to the begin of set.
Event and state attributes for hierarchical I/O systems.
libFAUDES resides within the namespace faudes.
uint32_t Idx
Type definition for index type (allways 32bit)
bool IsHioEnvironmentForm(HioEnvironment &rHioEnvironment, StateSet &rQYe, StateSet &rQUe, StateSet &rQUl, StateSet &rQYlUe, EventSet &rErrEvSet, TransSet &rErrTrSet, StateSet &rErrStSet, std::string &rReportStr)
IsHioEnvironmentForm: check if rHioEnvironment is in I/O-environment form and assign state attributes...
THioEnvironment< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid > HioEnvironment
void HioStatePartition(HioConstraint &rHioConstraint)
Function definition for run-time interface.