State
State
#include <icy/stateful.h>Subclassed by:
DiagnosticState,PacketStreamState,TransactionState,EncoderState,InstallationState,ClientState,ClientState
State class for state machines.
This class defines the state for a state machine, and should be extended and passed to implementations of the [Stateful](icy-Stateful.html#stateful) template.
For an example See also: PacketStreamState
Public Methods
| Return | Name | Description |
|---|---|---|
State | #### Parameters | |
State | Copy constructor. | |
State & | operator= | Copy assignment. |
ID | id const | Returns the current state ID. |
void | set | Sets the state ID. |
std::string | str virtual const | Returns a human-readable string for the given state ID. Override in derived classes to provide meaningful names. |
std::string | toString virtual const | Returns a human-readable string for the current state ID. |
bool | equals const | Returns true if the current state ID equals the given ID. |
bool | between const | Returns true if the current state ID is in the inclusive range [lid, rid]. |
bool | operator== const inline | |
bool | operator== const inline |
State
State(ID id)Parameters
idInitial state ID. Defaults to 0.
State
State(const State & that)Copy constructor.
Parameters
thatState to copy from.
operator=
State & operator=(const State & that)Copy assignment.
Parameters
thatState to assign from.
id
const
ID id() constReturns the current state ID.
Returns
Atomic state ID value.
set
void set(ID id)Sets the state ID.
Parameters
idNew state ID to assign.
str
virtual const
virtual std::string str(ID id) constReturns a human-readable string for the given state ID. Override in derived classes to provide meaningful names.
Parameters
idState ID to convert.
Returns
String representation of the state, or "undefined" by default.
toString
virtual const
virtual std::string toString() constReturns a human-readable string for the current state ID.
Returns
Result of str(id()).
equals
const
bool equals(ID id) constReturns true if the current state ID equals the given ID.
Parameters
idState ID to compare against.
Returns
True if IDs match.
between
const
bool between(ID lid, ID rid) constReturns true if the current state ID is in the inclusive range [lid, rid].
Parameters
lidLower bound state ID.ridUpper bound state ID.
Returns
True if lid <= id() <= rid.
operator==
const inline
inline bool operator==(const State & that) constoperator==
const inline
inline bool operator==(const State::ID & that) constProtected Attributes
| Return | Name | Description |
|---|---|---|
std::atomic< ID > | _id |
_id
std::atomic< ID > _idPublic Types
| Name | Description |
|---|---|
ID |
ID
uint32_t ID()