- Message framing changed back to use simple
- Support for multiplexing multiple requests over a single socket. Requests are tagged with an arbitrary channel id and routed to a queue for the appropriate IComputeChannel on the client.
- Clients can now request a message writer through the IComputeChannel interface, allowing pooling of write buffers for generating new messages and reducing data copies.
- Added accounting for machine resources in compute leases. Compute requests specify min/max desired resources, receive allocated resources in respoonse.
- Switched to AES-GCM for encryption. Message length is unencrypted but validated as part of the message packet.
#preflight none
[CL 24521844 by Ben Marsh in ue5-main branch]
* CbWriter was expecting BeginObject/BeginArray call before any fields were written, so did not handle writing fields directly to the root scope.
* Fields written at the root scope were not being flushed immediately after writing. Rest of the class assumes that any complete fields at root scope had already been accounted for in object size.
#preflight none
#fyi Joakim.Lindqvist
[CL 24520927 by Ben Marsh in ue5-main branch]
* New base class (CbWriterBase) has a virtual method to allocate chunks of memory for output, while still sharing common functionality for tracking scope state.
* Data for fixing up size/offset fields is written to blocks of memory returned by the CbWriterBase allocator rather than just to the final output buffer.
* Added support for embedded externally allocated blocks of data into the output stream, correctly updating size fields of containing fields.
#preflight none
#fyi Joakim.Lindqvist
[CL 24505997 by Ben Marsh in ue5-main branch]