Home
Base module

State

State class for state machines.

State

#include <icy/stateful.h>
class State

Defined in src/base/include/icy/stateful.h:31

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

List of all members

NameKindOwner
operator<<friendDeclared here
StatefunctionDeclared here
StatefunctionDeclared here
operator=functionDeclared here
~StatefunctionDeclared here
idfunctionDeclared here
setfunctionDeclared here
strfunctionDeclared here
toStringfunctionDeclared here
equalsfunctionDeclared here
betweenfunctionDeclared here
operator==functionDeclared here
operator==functionDeclared here
_idvariableDeclared here
IDtypedefDeclared here

Friends

NameDescription
operator<< inline

operator<<

inline

friend inline std::ostream & operator<<(std::ostream & os, const State & state)

Defined in src/base/include/icy/stateful.h:80

Public Methods

ReturnNameDescription
State
StateCopy constructor.
State &operator=Copy assignment.
IDid constReturns the current state ID.
voidsetSets the state ID.
std::stringstr virtual constReturns a human-readable string for the given state ID. Override in derived classes to provide meaningful names.
std::stringtoString virtual constReturns a human-readable string for the current state ID.
boolequals constReturns true if the current state ID equals the given ID.
boolbetween constReturns true if the current state ID is in the inclusive range [lid, rid].
booloperator== const inline
booloperator== const inline

State

State(ID id = 0)

Defined in src/base/include/icy/stateful.h:37

Parameters

  • id Initial state ID. Defaults to 0.

State

State(const State & that)

Defined in src/base/include/icy/stateful.h:41

Copy constructor.

Parameters

  • that State to copy from.

operator=

State & operator=(const State & that)

Defined in src/base/include/icy/stateful.h:45

Copy assignment.

Parameters

  • that State to assign from.

id

const

ID id() const

Defined in src/base/include/icy/stateful.h:50

Returns the current state ID.

Returns

Atomic state ID value.


set

void set(ID id)

Defined in src/base/include/icy/stateful.h:54

Sets the state ID.

Parameters

  • id New state ID to assign.

str

virtual const

virtual std::string str(ID id) const

Defined in src/base/include/icy/stateful.h:60

Returns a human-readable string for the given state ID. Override in derived classes to provide meaningful names.

Parameters

  • id State ID to convert.

Returns

String representation of the state, or "undefined" by default.


toString

virtual const

virtual std::string toString() const

Defined in src/base/include/icy/stateful.h:64

Returns a human-readable string for the current state ID.

Returns

Result of str(id()).

Reimplemented by

equals

const

bool equals(ID id) const

Defined in src/base/include/icy/stateful.h:69

Returns true if the current state ID equals the given ID.

Parameters

  • id State ID to compare against.

Returns

True if IDs match.


between

const

bool between(ID lid, ID rid) const

Defined in src/base/include/icy/stateful.h:75

Returns true if the current state ID is in the inclusive range [lid, rid].

Parameters

  • lid Lower bound state ID.

  • rid Upper bound state ID.

Returns

True if lid <= id() <= rid.


operator==

const inline

inline bool operator==(const State & that) const

Defined in src/base/include/icy/stateful.h:77


operator==

const inline

inline bool operator==(const State::ID & that) const

Defined in src/base/include/icy/stateful.h:78

Protected Attributes

ReturnNameDescription
std::atomic< ID >_id

_id

std::atomic< ID > _id

Defined in src/base/include/icy/stateful.h:87

Public Types

NameDescription
ID

ID

using ID = uint32_t

Defined in src/base/include/icy/stateful.h:34