ams::mitm::ldn::LdnStateMachine
ams::mitm::ldn::LdnStateMachine
Section titled “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.
Members
Section titled “Members”m_mutex
Section titled “m_mutex”Type: os::SdkMutex
Mutex for thread safety.
m_state
Section titled “m_state”Type: CommState
Current state.
m_state_event
Section titled “m_state_event”Type: os::SystemEvent
State change event.
m_callback
Section titled “m_callback”Type: StateCallback
Optional state change callback.
m_callback_user_data
Section titled “m_callback_user_data”Type: void *
User data for callback.
Methods
Section titled “Methods”LdnStateMachine
Section titled “LdnStateMachine”void LdnStateMachine()Constructor.
~LdnStateMachine
Section titled “~LdnStateMachine”void ~LdnStateMachine()Destructor.
LdnStateMachine
Section titled “LdnStateMachine”void LdnStateMachine(const&)Parameters:
param(const&)
operator=
Section titled “operator=”& operator=(const&)Parameters:
param(const&)
Returns: &
GetState
Section titled “GetState”CommState GetState()Get current state.
Current CommStatereturn
Returns: CommState
IsInState
Section titled “IsInState”bool IsInState(CommState state)Check if in a specific state.
stateState to checkparamtrue if in the specified statereturn
Parameters:
state(CommState)
Returns: bool
IsInitialized
Section titled “IsInitialized”bool IsInitialized()Check if initialized (not None or Error)
true if service is initializedreturn
Returns: bool
IsNetworkActive
Section titled “IsNetworkActive”bool IsNetworkActive()Check if in a connected state (AccessPointCreated or StationConnected)
true if connected to a networkreturn
Returns: bool
Initialize
Section titled “Initialize”StateTransitionResult Initialize()Initialize the service (None -> Initialized)
Transition resultreturn
Returns: StateTransitionResult
Finalize
Section titled “Finalize”StateTransitionResult Finalize()Finalize the service (Any -> None)
Transition resultreturn
Returns: StateTransitionResult
OpenAccessPoint
Section titled “OpenAccessPoint”StateTransitionResult OpenAccessPoint()Open access point mode (Initialized -> AccessPoint)
Transition resultreturn
Returns: StateTransitionResult
CloseAccessPoint
Section titled “CloseAccessPoint”StateTransitionResult CloseAccessPoint()Close access point mode (AccessPoint/AccessPointCreated -> Initialized)
Transition resultreturn
Returns: StateTransitionResult
CreateNetwork
Section titled “CreateNetwork”StateTransitionResult CreateNetwork()Create network (AccessPoint -> AccessPointCreated)
Transition resultreturn
Returns: StateTransitionResult
DestroyNetwork
Section titled “DestroyNetwork”StateTransitionResult DestroyNetwork()Destroy network (AccessPointCreated -> AccessPoint)
Transition resultreturn
Returns: StateTransitionResult
OpenStation
Section titled “OpenStation”StateTransitionResult OpenStation()Open station mode (Initialized -> Station)
Transition resultreturn
Returns: StateTransitionResult
CloseStation
Section titled “CloseStation”StateTransitionResult CloseStation()Close station mode (Station/StationConnected -> Initialized)
Transition resultreturn
Returns: StateTransitionResult
Connect
Section titled “Connect”StateTransitionResult Connect()Connect to network (Station -> StationConnected)
Transition resultreturn
Returns: StateTransitionResult
Disconnect
Section titled “Disconnect”StateTransitionResult Disconnect()Disconnect from network (StationConnected -> Station)
Transition resultreturn
Returns: StateTransitionResult
SetError
Section titled “SetError”StateTransitionResult SetError()Set error state (Any -> Error)
Transition resultreturn
Returns: StateTransitionResult
GetStateChangeEventHandle
Section titled “GetStateChangeEventHandle”os::NativeHandle GetStateChangeEventHandle()Get the state change event handle.
Event handle for state changesreturn
Returns: os::NativeHandle
SetStateCallback
Section titled “SetStateCallback”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 *)
SignalStateChange
Section titled “SignalStateChange”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.
Methods
Section titled “Methods”StateToString
Section titled “StateToString”const char * StateToString(CommState state)Convert state to string for logging.
stateState to convertparamHuman-readable state namereturn
Parameters:
state(CommState)
Returns: const char *
ResultToString
Section titled “ResultToString”const char * ResultToString(StateTransitionResult result)Convert transition result to string.
resultResult to convertparamHuman-readable result namereturn
Parameters:
result(StateTransitionResult)
Returns: const char *
Methods
Section titled “Methods”TransitionTo
Section titled “TransitionTo”StateTransitionResult TransitionTo(CommState new_state)Perform state transition if valid.
new_stateTarget stateparamTransition resultreturn
Parameters:
new_state(CommState)
Returns: StateTransitionResult
Methods
Section titled “Methods”IsValidTransition
Section titled “IsValidTransition”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