eUML operators and basic helpers

Table 10.1 — eUML operators and basic helpers

eUML function / operator

Description

Functor

&&

Calls lazily Action1&& Action2

And_

||

Calls lazily Action1|| Action2

Or_

!

Calls lazily !Action1

Not_

!=

Calls lazily Action1 != Action2

NotEqualTo_

==

Calls lazily Action1 == Action2

EqualTo_

Calls lazily Action1 > Action2

Greater_

=

Calls lazily Action1 >= Action2

Greater_Equal_

<

Calls lazily Action1 < Action2

Less_

Calls lazily Action1 ⇐ Action2

Less_Equal_

&

Calls lazily Action1 & Action2

Bitwise_And_

|

Calls lazily Action1 | Action2

Bitwise_Or_

^

Calls lazily Action1 ^ Action2

Bitwise_Xor_

Calls lazily –Action1 / Action1–

Pre_Dec_ / Post_Dec_

++

Calls lazily Action1 / Action1

Pre_Inc_ / Post_Inc_

/

Calls lazily Action1 / Action2

Divides_

/=

Calls lazily Action1 /= Action2

Divides_Assign_

*

Calls lazily Action1 * Action2

Multiplies_

*=

Calls lazily Action1 *= Action2

Multiplies_Assign_

  • (binary)

    + Calls lazily Action1 + Action2

    + Plus_

    +

    • (unary)

      Calls lazily +Action1

      Unary_Plus_

      +=

      Calls lazily Action1 += Action2

      Plus_Assign_

      • (binary)

        Calls lazily Action1 - Action2

        Minus_

        • (unary)

          Calls lazily -Action1

          Unary_Minus_

          -=

          Calls lazily Action1 -= Action2

          Minus_Assign_

          %

          Calls lazily Action1 % Action2

          Modulus_

          %=

          Calls lazily Action1 %= Action2

          Modulus_Assign_

Calls lazily Action1 >> Action2

ShiftRight_

=

Calls lazily Action1 >>= Action2

ShiftRight_Assign_

<<

Calls lazily Action1 << Action2

ShiftLeft_

<⇐

Calls lazily Action1 <⇐ Action2

ShiftLeft_Assign_

[] (works on vector, map, arrays)

Calls lazily Action1 [Action2]

Subscript_

if_then_else_(Condition,Action1,Action2)

Returns either the result of calling Action1 or the result of calling Action2

If_Else_

if_then_(Condition,Action)

Returns the result of calling Action if Condition

If_Then_

while_(Condition, Body)

While Condition(), calls Body(). Returns nothing

While_Do_

do_while_(Condition, Body)

Calls Body() while Condition(). Returns nothing

Do_While_

for_(Begin,Stop,EndLoop,Body)

Calls for(Begin;Stop;EndLoop)\{Body;}

For_Loop_

process_(Event [,fsm1] [,fsm2] [,fsm3] [,fsm4])

Processes Event on the current state machine (if no fsm specified) or on up to 4 state machines returned by an appropriate functor.

Process_

process2_(Event, Data [,fsm1] [,fsm2] [,fsm3])

Processes Event on the current state machine (if no fsm specified) or on up to 2 state machines returned by an appropriate functor. The event is copy-constructed from what Data() returns.

Process2_

is_flag_(Flag [,fsm])

Calls is_flag_active() on the current state machine or the one returned by calling fsm.

Get_Flag_

event_ [(attribute name)]

Returns the current event (as const reference)

GetEvent_

source_ [(attribute name)]

Returns the source state of the currently triggered transition (as reference). If an attribute name is provided, returns the attribute by reference.

GetSource_

target_ [(attribute name)]

Returns the target state of the currently triggered transition (as reference). If an attribute name is provided, returns the attribute by reference.

GetTarget_

state_ [(attribute name)]

Returns the source state of the currently active state (as reference). Valid inside a state entry/exit action. If an attribute name is provided, returns the attribute by reference.

GetState_

fsm_ [(attribute name)]

Returns the current state machine (as reference). Valid inside a state entry/exit action or a transition. If an attribute name is provided, returns the attribute by reference.

GetFsm_

substate_(state_name [,fsm])

Returns (as reference) the state state_name referenced in the current state machine or the one given as argument.

SubState_

To use these functions, you need to include:

#include <msm/front/euml/euml.hpp>