|
|
# The Frame Class
|
|
|
Data is synchronised and organised into discrete frames that are represented by a `Frame` class. A `Frame` has a unique identification and ownership within a `Feed`, along with a timestamp. Frames can be generated for a given ID by either the owner or a non-owner wishing to change the state relating to that `Frame`. A specific protocol must existing for the generation, transmission and receipt of frames. This page outlines the requirements and chosen design for this class since it is central to the entire system.
|
|
|
Data is synchronised and organised into discrete frames that are represented by a `Frame` class. A `Frame` has a unique identification and ownership within a `Feed`, along with a timestamp. Frames can be generated for a given ID by either the owner or a non-owner wishing to change the state relating to that `Frame`. A specific protocol must exist for the generation, transmission and receipt of frames. This page outlines the requirements and chosen design for this class since it is central to the entire system.
|
|
|
|
|
|
## Requirements
|
|
|
### Terms
|
... | ... | @@ -123,6 +123,35 @@ Data is synchronised and organised into discrete frames that are represented by |
|
|
* **5.4** The pool should be maintained at a minimal size.
|
|
|
* **5.5** The pool may expand or contract as necessary but infrequently.
|
|
|
|
|
|
## Design
|
|
|
|
|
|
### Channel Status
|
|
|
```c++
|
|
|
enum class ChannelStatus {
|
|
|
INVALID,
|
|
|
VALID,
|
|
|
FLUSHED
|
|
|
};
|
|
|
```
|
|
|
|
|
|
### Storage Mode
|
|
|
```c++
|
|
|
enum class StorageMode {
|
|
|
PERSISTENT,
|
|
|
TRANSIENT,
|
|
|
AGGREGATE
|
|
|
};
|
|
|
```
|
|
|
|
|
|
### Change Status
|
|
|
```c++
|
|
|
enum class ChangeType {
|
|
|
LOCAL,
|
|
|
FOREIGN,
|
|
|
COMPLETED
|
|
|
};
|
|
|
```
|
|
|
|
|
|
## Discussion
|
|
|
Each frame is involved in a number of stages within the system, these are:
|
|
|
1. Formation
|
... | ... | |