MOOS
MOOS is publish-subscribe middleware.
An MOOSApp (CMOOSApp
) communicates with the #MOOSDB and:
- publishes messages(
CMOOSMsg
), - registers for messages.
The MOOSDB will manages the incoming messages and send messages to all subscribed apps.
MOOS Relationships¶
erDiagram
CMOOSApp }o--|| MOOSDB : connects
MOOSDB ||--o{ CMOOSMsg : manages
CMOOSMsg }o--o{ CMOOSApp: publishes
MOOSDB¶
The MOOSDB is more a blackboard than a database. It keeps tracks of the message it receives.
Each message is unique by its name, see message class definition.
CMOOSApp¶
CMOOSApp
Lifecycle¶
stateDiagram-v2
[*] --> OnStartup
OnStartup --> OnConnect : after it connects to MOOSDB
state fork_state <>
OnConnect --> fork_state : Run loop
fork_state --> OnNewMail
OnNewMail --> OnNewMail
note left of OnNewMail : Runs at CommsTick speed
fork_state --> Iterate
Iterate --> Iterate
note right of Iterate : Runs at AppTick speed
fork_state --> [*] : quit
CMOOSApp
Class¶
The following is a non-exhaustive class diagram of CMOOSApp
:
classDiagram
class CMOOSApp{
-string : name
+Notify()
+Register()
}