... | ... | @@ -127,12 +127,24 @@ Data is synchronised and organised into discrete frames that are represented by |
|
|
* **4.4.6** `Frame` and channel number are provided to event handler.
|
|
|
* **4.4.7** The change status remains on the channels within the `Frame`.
|
|
|
|
|
|
### 5. Memory Management
|
|
|
* **5.1** `Frame`s are created from a memory pool.
|
|
|
* **5.2** Upon destruction, channel data is not removed but is transferred to the pool.
|
|
|
* **5.3** Channels are marked as `stale` if the data contents reflect old pool data.
|
|
|
* **5.4** The pool should be maintained at a minimal size.
|
|
|
* **5.5** The pool may expand or contract as necessary but infrequently.
|
|
|
### 5. Remote Procedure Calls
|
|
|
|
|
|
#### 5.1 Initiating a Call
|
|
|
* **5.1.1** Call initiation occurs on a frame before `Frame` `flush`.
|
|
|
* **5.1.2** The call causes an immediate `flush` on the relevant RPC channel
|
|
|
* **5.1.3** The call cannot block.
|
|
|
* **5.1.4** A result callback must be provided if a response value is needed.
|
|
|
|
|
|
#### 5.2 Receiving a Call
|
|
|
* **5.2.1** Call triggers occur immediately before the `Frame` dispatches on non-owners.
|
|
|
* **5.2.2** Call triggers occur immediately before `Frame` creation completes on owners.
|
|
|
|
|
|
### 6. Memory Management [REMOVE]
|
|
|
* **6.1** `Frame`s are created from a memory pool.
|
|
|
* **6.2** Upon destruction, channel data is not removed but is transferred to the pool.
|
|
|
* **6.3** Channels are marked as `stale` if the data contents reflect old pool data.
|
|
|
* **6.4** The pool should be maintained at a minimal size.
|
|
|
* **6.5** The pool may expand or contract as necessary but infrequently.
|
|
|
|
|
|
## Design
|
|
|
|
... | ... | |