Simple Message layout

main
~erin 2023-04-20 18:18:34 -04:00
parent 1389ca88cf
commit d11d256761
Signed by untrusted user: erin
GPG Key ID: 9A8E308CEFA37A47
1 changed files with 25 additions and 1 deletions

View File

@ -10,6 +10,7 @@ It reduces work of implementation, and all implementations can use the functions
- **OCAP** security - **OCAP** security
- **HMAC** message verification - **HMAC** message verification
## Format
```rust ```rust
// Different possible types of actors (more to be added) // Different possible types of actors (more to be added)
enum ActorType { enum ActorType {
@ -81,8 +82,31 @@ trait DataInterface { // Necessary data functions
**TODO** **TODO**
## Messages ## Messages
**TODO**
- [postcard](https://lib.rs/crates/postcard) for message passing - [postcard](https://lib.rs/crates/postcard) for message passing
- Priority Queue for processing multiple messages, while dealing with higher-priority ones first - Priority Queue for processing multiple messages, while dealing with higher-priority ones first
```rust
enum ProcessCode {
Exit, // Exit the process
Save, // Save data
Clear, // Clear data
Restart, // Restart process
}
enum MessageType {
Ping(String), // Simple test if we can send/recieve a message
FilesystemUpdate(gravitas::FileOperation), // We want to operate on the filesystem
GraphicsUpdate(photon::GraphicsOperation), // Update a graphics window
TextUpdate(String), // Send some text (text mode only)
ProcessUpdate(ProcessCode), // Send some info about an operation to be done on the current process. Usually kernel -> exe
}
struct Message {
m_type: MessageType, // Message type & content
priority: u8, // For priority queueing
sender: Uuid, // Who is sending the message
recipient: Uuid, // Who the message is meant for
}
```
### Latency ### Latency