Commit Graph

8 Commits

Author SHA1 Message Date
ben marsh
87b4ea8fc6 Horde: Support serialization of bool values to compact binary objects through attribute-driven serialization.
#ROBOMERGE-SOURCE: CL 17094350 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)

[CL 17094352 by ben marsh in ue5-release-engine-test branch]
2021-08-07 10:43:23 -04:00
ben marsh
bb65d26dbc Horde: Fix superfluous length field being written out with object data.
#ROBOMERGE-SOURCE: CL 16888502 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16888522 by ben marsh in ue5-release-engine-test branch]
2021-07-19 16:33:10 -04:00
ben marsh
334d38e86c Horde: Write managed workspace snapshots using Compact Binary.
#ROBOMERGE-SOURCE: CL 16811525 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16811533 by ben marsh in ue5-release-engine-test branch]
2021-07-06 11:05:18 -04:00
ben marsh
5feac1c075 Rename ReadOnlyUtf8String to Utf8String. Strings are always immutable in C#.
#ROBOMERGE-SOURCE: CL 16807051 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16807055 by ben marsh in ue5-release-engine-test branch]
2021-07-02 12:17:42 -04:00
ben marsh
7bf7a6596b Fix buffer overrun in compact binary writer.
#ROBOMERGE-SOURCE: CL 16807025 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16807029 by ben marsh in ue5-release-engine-test branch]
2021-07-02 12:12:09 -04:00
ben marsh
2c41930599 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.

#ROBOMERGE-SOURCE: CL 16804192 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16804202 by ben marsh in ue5-release-engine-test branch]
2021-07-01 09:16:47 -04:00
ben marsh
67d5b5cfb7 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.

#ROBOMERGE-SOURCE: CL 16778495 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16778515 by ben marsh in ue5-release-engine-test branch]
2021-06-24 16:58:05 -04:00
ben marsh
d1160cef8d Add C# compact binary library. Includes almost all functionality from C++ library, and test suite.
#ROBOMERGE-SOURCE: CL 16703410 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16703422 by ben marsh in ue5-release-engine-test branch]
2021-06-17 08:23:04 -04:00