...
| PlantUML Macro | ||
|---|---|---|
| ||
@startuml autonumber participant RialtoServerManager RialtoServerManager -> RialtoServerManager: Generate socketpair for Rialto Application Session Server to Server Manager communication RialtoServerManager -> RialtoApplicationSessionServer **: Spawn(server_manager_socket) note left Spawn preloaded Application Session Servers to speed up app launch time. end note RialtoServerManager -> RialtoServerManager: Start [startup] second READY timer RialtoApplicationSessionServer -> RialtoApplicationSessionServer: Set current_state = Uninitialised alt RialtoApplicationSessionServer started successfully RialtoApplicationSessionServer -// RialtoServerManager: stateChanged(AppState::Uninitialised) RialtoServerManager -> RialtoServerManager: Cancel READY timer else Session Server initialisation failed RialtoApplicationSessionServer -// RialtoServerManager: -> stateChanged(AppState::Error) RialtoServerManagerRialtoServerManager: -> RialtoServerManager: Cancel READY timer RialtoApplicationSessionServer -> RialtoApplicationSessionServer: Unbind/free session management socket Cancel READY timer(if created) RialtoApplicationSessionServer -> RialtoApplicationSessionServer !!: Exit process else READY timer expired RialtoServerManager -> RialtoServerManager: Kill spawned Rialto Application Session Server process RialtoApplicationSessionServer -> RialtoApplicationSessionServer: Unbind/free session management socket (if created) end @enduml |
| PlantUML Macro | ||||
|---|---|---|---|---|
| ||||
@startuml autonumber participant ApplicationManager participant RialtoServerManager ApplicationManager -> RialtoServerManager: initiateApplication(application_id, AppState::Inactive, app_config) note alt right: app_config allows app manager to specify the socket name to use for Rialto client/server session management and the socket name for communication with a display server opt session_management_socket_name not specified in app_config RialtoServerManager -> RialtoServerManager:There are no preloaded servers RialtoServerManager -> RialtoServerManager: Generate socketpair for Rialto Application Session Server to Server Manager communication RialtoServerManager -> RialtoApplicationSessionServer Generate unique session_management_socket_name for Rialto Client to Rialto Application Session Server communication end alt There are no preloaded servers RialtoServerManager**: Spawn(server_manager_socket) RialtoServerManager -> RialtoServerManager: -> RialtoServerManager: Start [startup] second READY timer RialtoApplicationSessionServer -> RialtoApplicationSessionServer: Set current_state = Generate socketpair for Rialto Application Session Server to Server Manager communication RialtoServerManagerUninitialised alt RialtoApplicationSessionServer started successfully RialtoApplicationSessionServer -// RialtoServerManager: -> RialtoApplicationSessionServer **: Spawn(server_manager_socket stateChanged(AppState::Uninitialised) RialtoServerManager -> RialtoServerManager: Start [startup] second Cancel READY timer RialtoApplicationSessionServerRialtoServerManager -> RialtoApplicationSessionServer: Set current_state = Uninitialised alt RialtoApplicationSessionServer started successfully RialtoApplicationSessionServer -// RialtoServerManagerApplicationManager: stateChanged(application_id, AppState::Uninitialised) RialtoServerManager ref over ApplicationManager, RialtoApplicationSessionServer : [[#RialtoApplicationSessionManagement-Unitialized→Inactive Unitialized→Inactive]] else Session Server initialisation failed RialtoApplicationSessionServer -> RialtoServerManagerRialtoApplicationSessionServer: Unbind/free session management socket (if created) RialtoApplicationSessionServer -// RialtoServerManager: Cancel READY timer stateChanged(AppState::Error) RialtoServerManager -//> ApplicationManagerRialtoServerManager: stateChanged(application_id, AppState::Uninitialised) ref over ApplicationManager,Cancel READY timer RialtoApplicationSessionServer -> RialtoApplicationSessionServer !!: [[#RialtoApplicationSessionManagement-Unitialized→Inactive Unitialized→Inactive]] else State transition failed RialtoApplicationSessionServer -> RialtoApplicationSessionServer:Exit process RialtoServerManager Unbind/free session management socket (if created) RialtoApplicationSessionServer -// RialtoServerManagerApplicationManager: stateChanged(application_id, AppState::Error) else READY timer expired RialtoServerManager -//> ApplicationManagerRialtoServerManager: stateChanged(application_id, AppState::Error) RialtoApplicationSessionServer -> RialtoApplicationSessionServer !!: Exit process else Kill spawned Rialto Application Session Server initialisation failed RialtoApplicationSessionServer ->process RialtoServerManager RialtoApplicationSessionServer: Unbind/free session management socket (if created) RialtoApplicationSessionServer -// RialtoServerManagerApplicationManager: stateChanged(application_id, AppState::Error) RialtoServerManager end else There are preloaded servers note over -> RialtoServerManagerApplicationManager, RialtoApplicationSessionServer: Pick 1st free preloaded server (it's already in Cancel READY timer RialtoApplicationSessionServer -> unitialized state) ref over ApplicationManager, RialtoApplicationSessionServer !!: Exit process[[#RialtoApplicationSessionManagement-Unitialized→Inactive Unitialized→Inactive]] RialtoServerManager --//> ApplicationManager: stateChanged(application_id, AppState::Error) else READY timer expired OK/ERROR end @enduml |
| PlantUML Macro | ||||
|---|---|---|---|---|
| ||||
@startuml autonumber participant ApplicationManager participant RialtoServerManager opt session_management_socket_name not specified in app_config RialtoServerManager -> RialtoServerManager: Kill spawnedGenerate unique session_management_socket_name for Rialto ApplicationClient Sessionto ServerRialto process RialtoServerManagerApplication Session Server communication end note right "app_config allows app manager to specify the -// ApplicationManager: socket name to use for Rialto client/server session management and the socket stateChanged(application_id, AppState::Error) end else There are preloaded servers note over ApplicationManager, RialtoApplicationSessionServer: Pick 1st free preloaded server (it's already in unitialized state) ref over ApplicationManager, RialtoApplicationSessionServer : [[#RialtoApplicationSessionManagement-Unitialized→Inactive Unitialized→Inactive]] RialtoServerManager --> ApplicationManager: OK/ERROR end @enduml |
| PlantUML Macro | ||||
|---|---|---|---|---|
| ||||
@startuml autonumber participant ApplicationManager participant RialtoServerManagername for communication with a display server" end note RialtoServerManager -> RialtoApplicationSessionServer: SetConfiguration(session_management_socket_name, AppState::Inactive, resources, log_level, display_name) note right "resources" structure will specify the maximum decoder resources that the application is permitted to use. For now it shall have a max_playback_sessions property and a supports_web_audio flag. This may be enhanced for things like HD/UHD, audio only etc in future. end note RialtoApplicationSessionServer --> RialtoServerManager: RialtoApplicationSessionServer -> RialtoApplicationSessionServer: Create listening socket & bind to session_management_socket_name opt display_name defined RialtoApplicationSessionServer -> RialtoApplicationSessionServer: Set WAYLAND_DISPLAY environment variable end alt State transition successful RialtoApplicationSessionServer -> RialtoApplicationSessionServer: Set current_state = Inactive RialtoApplicationSessionServer -// RialtoServerManager: stateChanged(AppState::Inactive) RialtoServerManager -// ApplicationManager: StateChanged(application_id, AppState::Inactive) ApplicationManager -> RialtoServerManager: getAppConnectionInfo() RialtoServerManager --> ApplicationManager: session_management_socket_name else State transition failed RialtoApplicationSessionServer -> RialtoApplicationSessionServer: Unbind/free session management socket (if created) RialtoApplicationSessionServer -// RialtoServerManager: stateChanged(AppState::Error) RialtoServerManager -// ApplicationManager: stateChanged(application_id, AppState::Error) RialtoApplicationSessionServer -> RialtoApplicationSessionServer !!: Exit process end opt Server preloading is active note over ApplicationManager, RialtoApplicationSessionServer: Preload RialtoApplicationSessionServer in place of the one that has just been allocated ref over ApplicationManager, RialtoApplicationSessionServer : [[#RialtoApplicationSessionManagement-NotRunning→Unitialized(serverpreloading) Not Running→Unitialized (server preloading)]] end @enduml |
...