Skip to content

ams::mitm::ldn::LdnStateMachine

LDN State Machine.

Manages the LDN communication state with thread-safe transitions and automatic event signaling on state changes.State Diagram+------+||+------+|Initializenormalv+-------------+||+-------------+/\OpenAccessPointOpenStationnormal/\vv+-------------++---------+||||+-------------++---------+||CreateNetworkConnectnormalvv+--------------------++------------------+||||+--------------------++------------------+Any state can transition to Error on fatal errors. Finalize from any state returns to None.

Type: os::SdkMutex

Mutex for thread safety.

Type: CommState

Current state.

Type: os::SystemEvent

State change event.

Type: StateCallback

Optional state change callback.

Type: void *

User data for callback.

void LdnStateMachine()

Constructor.

void ~LdnStateMachine()

Destructor.

void LdnStateMachine(const&)

Parameters:

  • param (const&)
& operator=(const&)

Parameters:

  • param (const&)

Returns: &

CommState GetState()

Get current state.

Current CommStatereturn

Returns: CommState

bool IsInState(CommState state)

Check if in a specific state.

stateState to checkparamtrue if in the specified statereturn

Parameters:

  • state (CommState)

Returns: bool

bool IsInitialized()

Check if initialized (not None or Error)

true if service is initializedreturn

Returns: bool

bool IsNetworkActive()

Check if in a connected state (AccessPointCreated or StationConnected)

true if connected to a networkreturn

Returns: bool

StateTransitionResult Initialize()

Initialize the service (None -> Initialized)

Transition resultreturn

Returns: StateTransitionResult

StateTransitionResult Finalize()

Finalize the service (Any -> None)

Transition resultreturn

Returns: StateTransitionResult

StateTransitionResult OpenAccessPoint()

Open access point mode (Initialized -> AccessPoint)

Transition resultreturn

Returns: StateTransitionResult

StateTransitionResult CloseAccessPoint()

Close access point mode (AccessPoint/AccessPointCreated -> Initialized)

Transition resultreturn

Returns: StateTransitionResult

StateTransitionResult CreateNetwork()

Create network (AccessPoint -> AccessPointCreated)

Transition resultreturn

Returns: StateTransitionResult

StateTransitionResult DestroyNetwork()

Destroy network (AccessPointCreated -> AccessPoint)

Transition resultreturn

Returns: StateTransitionResult

StateTransitionResult OpenStation()

Open station mode (Initialized -> Station)

Transition resultreturn

Returns: StateTransitionResult

StateTransitionResult CloseStation()

Close station mode (Station/StationConnected -> Initialized)

Transition resultreturn

Returns: StateTransitionResult

StateTransitionResult Connect()

Connect to network (Station -> StationConnected)

Transition resultreturn

Returns: StateTransitionResult

StateTransitionResult Disconnect()

Disconnect from network (StationConnected -> Station)

Transition resultreturn

Returns: StateTransitionResult

StateTransitionResult SetError()

Set error state (Any -> Error)

Transition resultreturn

Returns: StateTransitionResult

os::NativeHandle GetStateChangeEventHandle()

Get the state change event handle.

Event handle for state changesreturn

Returns: os::NativeHandle

void SetStateCallback(StateCallback callback, void * user_data)

Set callback for state changes.

callbackCallback function (can be nullptr)user_dataUser data passed to callbackparam

Parameters:

  • callback (StateCallback)
  • user_data (void *)
void SignalStateChange()

Manually signal state change event.

Call this when external events (like server packets) indicate a state-relevant change that games should be notified about.

const char * StateToString(CommState state)

Convert state to string for logging.

stateState to convertparamHuman-readable state namereturn

Parameters:

  • state (CommState)

Returns: const char *

const char * ResultToString(StateTransitionResult result)

Convert transition result to string.

resultResult to convertparamHuman-readable result namereturn

Parameters:

  • result (StateTransitionResult)

Returns: const char *

StateTransitionResult TransitionTo(CommState new_state)

Perform state transition if valid.

new_stateTarget stateparamTransition resultreturn

Parameters:

  • new_state (CommState)

Returns: StateTransitionResult

bool IsValidTransition(CommState from, CommState to)

Check if transition is valid.

fromSource statetoTarget stateparamtrue if transition is allowedreturn

Parameters:

  • from (CommState)
  • to (CommState)

Returns: bool