Commit Graph

16 Commits

Author SHA1 Message Date
ben marsh
7188d085a2 Horde: Allow requesting objects in JSON format using a ".json" suffix on the URL. Compact binary objects will automatically be transcoded.
#ROBOMERGE-SOURCE: CL 17409520 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17409536 by ben marsh in ue5-release-engine-test branch]
2021-09-02 17:48:15 -04:00
ben marsh
b2faed8730 Horde: Fixup compute API to use CbObjectAttachment/CbBinaryAttachment types where appropriate.
[FYI] Joe.Kirchoff

#ROBOMERGE-SOURCE: CL 17409049 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17409083 by ben marsh in ue5-release-engine-test branch]
2021-09-02 16:59:36 -04:00
ben marsh
40c48c839d Horde: Add compact binary request/response support to objects controller.
#ROBOMERGE-SOURCE: CL 17405657 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17405660 by ben marsh in ue5-release-engine-test branch]
2021-09-02 13:44:45 -04:00
ben marsh
477cafbfe5 Horde: Add CbObjectAttachment and CbBinaryAttachment classes to reference typed data by class. We need to distinguish between the two types rather than relying solely on a hash value.
[FYI] Joe.Kirchoff

#ROBOMERGE-SOURCE: CL 17391146 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17391154 by ben marsh in ue5-release-engine-test branch]
2021-09-01 15:22:53 -04:00
ben marsh
8f756514b9 Horde: Fix DateTime CB serialization tests.
#ROBOMERGE-SOURCE: CL 17368297 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17368320 by ben marsh in ue5-release-engine-test branch]
2021-08-31 10:58:06 -04:00
ben marsh
43f16460e6 Horde: Include file and directory sizes in DirectoryTree objects, as well as file attributes.
[FYI] Joe.Kirchoff

#ROBOMERGE-SOURCE: CL 17235171 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)

[CL 17235179 by ben marsh in ue5-release-engine-test branch]
2021-08-19 12:03:53 -04:00
ben marsh
b7c5c7bece Add support for serializing int, DateTime, Nullable, and enum types to compact binary through reflection.
Also fix deserialized DateTime values being treated as local times rather than UTC.

#ROBOMERGE-SOURCE: CL 17161724 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)

[CL 17161731 by ben marsh in ue5-release-engine-test branch]
2021-08-12 20:16:20 -04:00
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
782894c48f Horde: Add IL generated serializer for reading objects. Optimized for fields ordered the same as the current class layout. Only currently supports some basic types (int, string, other objects).
#ROBOMERGE-SOURCE: CL 16997462 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16997472 by ben marsh in ue5-release-engine-test branch]
2021-07-29 13:09:39 -04:00
ben marsh
29eda8de01 Horde: Fix memory leak of Blake3.Hasher objects.
#ROBOMERGE-SOURCE: CL 16960469 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16960535 by ben marsh in ue5-release-engine-test branch]
2021-07-26 16:05:45 -04:00
ben marsh
491fca0c7c Fix AsBinary() returning the incorrect payload buffer for binary fields. Was causing Horde agents to deserialize incorrect hash values.
#ROBOMERGE-SOURCE: CL 16852536 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16852540 by ben marsh in ue5-release-engine-test branch]
2021-07-14 13:55:40 -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
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