Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

PlantUML Macro
formatSVG
titleLaunch application in Inactive state
@startuml
autonumber
participant ApplicationManager
participant RialtoApplicationSessionServer
ref over ApplicationManager, RialtoApplicationSessionServer : [[#RialtoSessionManagementSequenceDiagrams#RialtoApplicationSessionManagement-NotRunning→Inactive Not Running to Inactive]]
ApplicationManager             ->  Application ** :                Spawn(AppState::Inactive, listening_socket_name)
Application                    ->  RialtoClient ** :               Load RialtoClient library
RialtoClient                   ->  RialtoApplicationSessionServer: Connect(rialto_listening_socket)
note right
Connect is not an API call, it is establishing IPC channel with server
end note
RialtoClient                   --> Application:                    status
Application                    -// ApplicationManager:             stateChanged(AppState::Inactive)
@enduml

...

PlantUML Macro
formatSVG
titleLaunch application in Running state
@startuml

autonumber

participant ApplicationManager
participant RialtoApplicationSessionServer

ref over ApplicationManager, RialtoApplicationSessionServer : [[#RialtoSessionManagementSequenceDiagrams#RialtoApplicationSessionManagement-NotRunning→Active Not Running to Active]]

ApplicationManager             ->  Application ** :                Spawn(AppState::Running, listening_socket_name)
Application                    ->  RialtoClient ** :               load RialtoClient library
RialtoClient                   ->  RialtoApplicationSessionServer: Connect(rialto_listening_socket)
note right
Connect is not an API call, it is establishing IPC channel with server
end note
RialtoClient                   --> Application:
Application                    ->  RialtoClient:                   setApplicationState(Running)
RialtoClient                   ->  RialtoApplicationSessionServer: GetSharedMemory()
RialtoApplicationSessionServer --> RialtoClient:                   shm_fd
RialtoClient                   ->  RialtoClient:                   Map shared memory
RialtoClient                   --> Application:                    status
Application                    -// ApplicationManager:             stateChanged(AppState::Running)

@enduml

...

PlantUML Macro
formatSVG
titleApplication state change: Inactive to Running
@startuml

autonumber

participant ApplicationManager
participant RialtoApplicationSessionServer
participant Application
participant RialtoClient

ref over ApplicationManager, RialtoApplicationSessionServer : [[#RialtoSessionManagementSequenceDiagrams#RialtoApplicationSessionManagement-Inactive→Active Inactive to Active]] 

ApplicationManager             ->  Application :                   NotifyNewState(AppState::Running)
Application                    ->  RialtoClient:                   setApplicationState(Running)
RialtoClient                   ->  RialtoApplicationSessionServer: GetSharedMemory()
RialtoApplicationSessionServer --> RialtoClient:                   shm_fd
RialtoClient                   ->  RialtoClient:                   Map shared memory
RialtoClient                   --> Application:                    status
Application                    -// ApplicationManager:             stateChanged(AppState::Running)

@enduml

...

PlantUML Macro
formatSVG
titleApplication state change: Running to Inactive
@startuml

autonumber

participant ApplicationManager
participant RialtoApplicationSessionServer
participant Application
participant RialtoClient

ApplicationManager  ->  Application :       NotifyNewState(AppState::Inactive)
Application         ->  RialtoClient:       setApplicationState(Inactive)
RialtoClient        ->  RialtoClient :      Free CDM & Player resources
RialtoClient        ->  RialtoClient:       Unmap shared memory
RialtoClient        --> Application:        status
Application         -// ApplicationManager: stateChanged(AppState::Inactive)

ref over ApplicationManager, RialtoApplicationSessionServer : [[#RialtoSessionManagementSequenceDiagrams#RialtoApplicationSessionManagement-Active→Inactive Active to Inactive]] 

@enduml

...

PlantUML Macro
formatSVG
titleApplication state change: Inactive to Not Running
@startuml

autonumber

participant ApplicationManager
participant RialtoApplicationSessionServer
participant Application
participant RialtoClient

ApplicationManager  ->  Application :       NotifyNewState(AppState::NotRunning)
Application         -// ApplicationManager: stateChanged(AppState::NotRunning)
Application         ->  RialtoClient:       Unload library
RialtoClient        ->  RialtoClient !!:
Application         ->  Application !!:

ref over ApplicationManager, RialtoApplicationSessionServer : [[#RialtoSessionManagementSequenceDiagrams#RialtoApplicationSessionManagement-Inactive→NotRunning Inactive to Not Running]]

@enduml

...

PlantUML Macro
formatSVG
titleApplication state change: Running to Not Running
@startuml

autonumber

participant ApplicationManager
participant RialtoApplicationSessionServer
participant Application
participant RialtoClient

ApplicationManager  ->  Application :       NotifyNewState(AppState::NotRunning)

Application         ->  RialtoClient:       setApplicationState(Inactive)
RialtoClient        ->  RialtoClient :      Free CDM & Player resources
RialtoClient        ->  RialtoClient:       Unmap shared memory
RialtoClient        --> Application:        status
Application         -// ApplicationManager: stateChanged(AppState::NotRunning)
Application         ->  RialtoClient:       Unload library
RialtoClient        ->  RialtoClient !!:
Application         ->  Application !!:

ref over ApplicationManager, RialtoApplicationSessionServer : [[#RialtoSessionManagementSequenceDiagrams#RialtoApplicationSessionManagement-Active→NotRunning Active to Not Running]]

@enduml

...

PlantUML Macro
formatSVG
titleActive / Inactive Application Switch
@startuml

autonumber

participant ApplicationManager
participant RialtoServerManager

note across : First make App_1 Inactive
ref over ApplicationManager, RialtoServerManager : [[#RialtoSessionManagementSequenceDiagrams#RialtoApplicationSessionManagement-Active→Inactive Active->Inactive(app_id_1)]]

note across
Once Application Manager has received
the state change event to Inactive for
app_id_1 it can then make App_2 Active
end note
ref over ApplicationManager, RialtoServerManager : [[#RialtoSessionManagementSequenceDiagrams#RialtoApplicationSessionManagement-Inactive→Active Inactive->Active(app_id_2)]]

@enduml