Commit Graph

29 Commits

Author SHA1 Message Date
Ben Marsh
0318e8cb19 Horde: Add compact binary and string conversion classes for condition objects, and embed them directly in agent requirements. Simplifies unification of agent specifications.
[CL 17484376 by Ben Marsh in ue5-main branch]
2021-09-10 19:05:19 -04:00
Ben Marsh
8e42d6fdde Horde: Add support for serializing ReadOnlyMemory<> and byte arrays to reflection-based CB serializer.
[CL 17432013 by Ben Marsh in ue5-main branch]
2021-09-04 10:26:56 -04:00
Ben Marsh
5ea27fc47c Horde: Allow requesting objects in JSON format using a ".json" suffix on the URL. Compact binary objects will automatically be transcoded.
[CL 17409520 by Ben Marsh in ue5-main branch]
2021-09-02 17:47:31 -04:00
Ben Marsh
342edb1d81 Horde: Fixup compute API to use CbObjectAttachment/CbBinaryAttachment types where appropriate.
#fyi Joe.Kirchoff

[CL 17409049 by Ben Marsh in ue5-main branch]
2021-09-02 16:57:20 -04:00
Ben Marsh
177ad8c2ac Horde: Add compact binary request/response support to objects controller.
[CL 17405657 by Ben Marsh in ue5-main branch]
2021-09-02 13:44:25 -04:00
Ben Marsh
0d875b2910 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

[CL 17391146 by Ben Marsh in ue5-main branch]
2021-09-01 15:22:32 -04:00
Ben Marsh
77210c0efc Horde: Fix DateTime CB serialization tests.
[CL 17368297 by Ben Marsh in ue5-main branch]
2021-08-31 10:56:03 -04:00
Ben Marsh
564ecec2bb Horde: Add support for serializing requests and responses as compact binary objects.
[CL 17250722 by Ben Marsh in ue5-main branch]
2021-08-20 14:28:49 -04:00
Ben Marsh
ef5988a226 Horde: Include file and directory sizes in DirectoryTree objects, as well as file attributes.
#fyi Joe.Kirchoff

[CL 17235171 by Ben Marsh in ue5-main branch]
2021-08-19 12:03:00 -04:00
Ben Marsh
75a96a6ac6 Allow serializing structs to compact binary objects using reflection, and automatically instantiate converter types with the same generic arguments as the tagged class if necessary.
[CL 17171079 by Ben Marsh in ue5-main branch]
2021-08-14 17:47:38 -04:00
Ben Marsh
36646e683f 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.

[CL 17161724 by Ben Marsh in ue5-main branch]
2021-08-12 20:15:32 -04:00
jonathan adamczewski
db8046e278 Move DotNETCommon/BuildUtilities to Shared/EpicGames.Build
Also moves DotNETCommon/Metadata.cs to Shared/Metadata.cs

#jira none
#rb tim.smith

[CL 17116964 by jonathan adamczewski in ue5-main branch]
2021-08-10 11:08:41 -04:00
Ben Marsh
7572b4ed1a Horde: Support serialization of bool values to compact binary objects through attribute-driven serialization.
[CL 17094350 by Ben Marsh in ue5-main branch]
2021-08-07 10:41:52 -04:00
Ben Marsh
fafbfc8dc0 Horde: Add a framework for being able to expand CB serialization with custom converters.
CbSerializer.RegisterConverterFactory() allows registering factories that can create custom CbConverter instances for different types.

Move tagged-property IL generation into its own converter factory (CbDefaultConverterFactory). Add custom converters for list and dictionary types.

[CL 17008251 by Ben Marsh in ue5-main branch]
2021-07-30 15:15:43 -04:00
Ben Marsh
1c721dd0b8 Horde: Add support for reading and writing list types to compact binary.
[CL 17000074 by Ben Marsh in ue5-main branch]
2021-07-29 15:36:21 -04:00
Ben Marsh
bb5d2556f0 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).
[CL 16997462 by Ben Marsh in ue5-main branch]
2021-07-29 13:09:14 -04:00
Ben Marsh
283935a9e7 Horde: Generate dynamic methods for serializing compact binary objects.
[CL 16994864 by Ben Marsh in ue5-main branch]
2021-07-29 09:20:21 -04:00
Ben Marsh
14ee4949f4 Horde: Add a simple, attribute-based serializer for compact binary objects.
[CL 16983777 by Ben Marsh in ue5-main branch]
2021-07-28 12:40:35 -04:00
joe kirchoff
d77482768d [Backout] - CL16961198
#fyi Joe.Kirchoff
Original CL Desc
-----------------------------------------------------------------
Use Microsoft.CodeAnalysis.CSharp.Workspaces for code analysis

#rb none
#rnx

[CL 16961691 by joe kirchoff in ue5-main branch]
2021-07-26 17:58:54 -04:00
Joe Kirchoff
8fcb4dc40e Use Microsoft.CodeAnalysis.CSharp.Workspaces for code analysis
#rb none
#rnx

[CL 16961198 by Joe Kirchoff in ue5-main branch]
2021-07-26 17:14:29 -04:00
Ben Marsh
6f92e8c5d4 Horde: Fix memory leak of Blake3.Hasher objects.
[CL 16960469 by Ben Marsh in ue5-main branch]
2021-07-26 16:02:18 -04:00
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
9f10c7c335 Fix AsBinary() returning the incorrect payload buffer for binary fields. Was causing Horde agents to deserialize incorrect hash values.
[CL 16852536 by Ben Marsh in ue5-main branch]
2021-07-14 13:55:32 -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