Commit Graph

7 Commits

Author SHA1 Message Date
Ben Marsh
6b013e9a18 Horde: Fix superfluous length field being written out with object data.
[CL 16888502 by Ben Marsh in ue5-main branch]
2021-07-19 16:32:24 -04:00
Ben Marsh
b3fb0f0503 Horde: Write managed workspace snapshots using Compact Binary.
[CL 16811525 by Ben Marsh in ue5-main branch]
2021-07-06 11:00:26 -04:00
Ben Marsh
a855dca4ea Rename ReadOnlyUtf8String to Utf8String. Strings are always immutable in C#.
[CL 16807051 by Ben Marsh in ue5-main branch]
2021-07-02 12:16:55 -04:00
Ben Marsh
abb6871d5e Fix buffer overrun in compact binary writer.
[CL 16807025 by Ben Marsh in ue5-main branch]
2021-07-02 12:08:03 -04:00
Ben Marsh
7e3b00497a Horde: Various compact binary library improvements.
CbObject/CbBinary/CbArray:
* Added proxy classes for viewing objects in the debugger. CbArray now displays as an array, CbObject displays as an array of fields, etc...
* Removed overloaded "View" methods, which are not required in C# due to GC.

CbWriter:
* Significantly fewer memory allocations/copying. Output buffer is now allocated in large chunks, with length fields only inserted when copying to the final output buffer.
* Methods for writing named/unnamed fields are now more idomatic with other C# serialization classes (ie. WriteXXX(Name, Value) and WriteXXXValue(Value)).

Other:
* Added serialization tests to Horde projects and fixed NuGet dependencies.

[CL 16804192 by Ben Marsh in ue5-main branch]
2021-07-01 09:12:10 -04:00
Ben Marsh
c02be00304 Horde: Basic implementation of storage API.
Current limitations:

* Only supports a filesystem backend
* No garbage collection
* Refs are stored in the database, and do not automatically expire.
* Validation of refs is slow and does not cache any data.

[CL 16778495 by Ben Marsh in ue5-main branch]
2021-06-24 16:57:21 -04:00
Ben Marsh
c7bcab5731 Add C# compact binary library. Includes almost all functionality from C++ library, and test suite.
[CL 16703410 by Ben Marsh in ue5-main branch]
2021-06-17 08:22:02 -04:00