Commit Graph

33 Commits

Author SHA1 Message Date
ben marsh
69257311c4 Horde: Add support for directly serializing raw compact binary objects. Fixes the /api/v1/objects endpoint when given a compact binary content type.
[FYI] Joe.Kirchoff

#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 17889706 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v883-17842818)

[CL 17889742 by ben marsh in ue5-release-engine-test branch]
2021-10-21 16:16:10 -04:00
ben marsh
f4c974406b Horde: Add convenience methods in CompactBinarySerializer to read/write from byte spans.
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 17721938 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v879-17706426)

[CL 17721952 by ben marsh in ue5-release-engine-test branch]
2021-10-05 11:17:25 -04:00
ben marsh
4f593da441 Horde: Reduce memory usage when capturing workspace (part 2)
* Added UTF8 native version of fstat record to avoid unnecessary conversions
* Avoid conversion to/from UTF8 strings when converting Perforce records into CB objects
* Fixed implicit conversion of string to UTF8 string in argument check
* Converted ViewMap to use UTF8 strings

#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 17601088 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v871-17566257)

[CL 17601093 by ben marsh in ue5-release-engine-test branch]
2021-09-22 17:34:28 -04:00
ben marsh
3a1f61507c Horde: Reduce memory usage when querying workspace state (pt 1)
* CbWriter instances may now be cleared, and can cache allocated buffers between uses.
* Records may now be returned using IAsyncEnumerable<T> allowing them to be processed as they are received, and removing the need to allocate large numbers of temporary objects.

#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 17599803 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v871-17566257)

[CL 17599823 by ben marsh in ue5-release-engine-test branch]
2021-09-22 16:11:38 -04:00
ben marsh
65288f328f Horde: Add compact binary and string conversion classes for condition objects, and embed them directly in agent requirements. Simplifies unification of agent specifications.
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 17484376 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17484385 by ben marsh in ue5-release-engine-test branch]
2021-09-10 19:08:51 -04:00
ben marsh
d5ab234471 Horde: Add support for serializing ReadOnlyMemory<> and byte arrays to reflection-based CB serializer.
#ROBOMERGE-SOURCE: CL 17432013 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v867-17431908)

[CL 17432023 by ben marsh in ue5-release-engine-test branch]
2021-09-04 10:31:24 -04:00
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
428ab35877 Horde: Add support for serializing requests and responses as compact binary objects.
#ROBOMERGE-SOURCE: CL 17250722 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)

[CL 17250742 by ben marsh in ue5-release-engine-test branch]
2021-08-20 14:29:40 -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
bc1d02523d 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.
#ROBOMERGE-SOURCE: CL 17171079 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)

[CL 17171080 by ben marsh in ue5-release-engine-test branch]
2021-08-14 17:47:57 -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
jonathan adamczewski
2b7b866f45 Move DotNETCommon/BuildUtilities to Shared/EpicGames.Build
Also moves DotNETCommon/Metadata.cs to Shared/Metadata.cs

#jira none
#rb tim.smith

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

[CL 17116977 by jonathan adamczewski in ue5-release-engine-test branch]
2021-08-10 11:09:18 -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
ebcb0ef6b3 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.

#ROBOMERGE-SOURCE: CL 17008251 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 17008389 by ben marsh in ue5-release-engine-test branch]
2021-07-30 15:50:23 -04:00
ben marsh
893277ddd0 Horde: Add support for reading and writing list types to compact binary.
#ROBOMERGE-SOURCE: CL 17000074 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 17000080 by ben marsh in ue5-release-engine-test branch]
2021-07-29 15:36:45 -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
1f3c60c37e Horde: Generate dynamic methods for serializing compact binary objects.
#ROBOMERGE-SOURCE: CL 16994864 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16994870 by ben marsh in ue5-release-engine-test branch]
2021-07-29 09:21:21 -04:00
ben marsh
57d8091b79 Horde: Add a simple, attribute-based serializer for compact binary objects.
#ROBOMERGE-SOURCE: CL 16983777 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16983794 by ben marsh in ue5-release-engine-test branch]
2021-07-28 12:41:33 -04:00
joe kirchoff
7398b01588 [Backout] - CL16961198
[FYI] Joe.Kirchoff
Original CL Desc
-----------------------------------------------------------------
Use Microsoft.CodeAnalysis.CSharp.Workspaces for code analysis

#rb none
#rnx

#ROBOMERGE-SOURCE: CL 16961691 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16961693 by joe kirchoff in ue5-release-engine-test branch]
2021-07-26 17:59:19 -04:00
joe kirchoff
2e1a78fb8b Use Microsoft.CodeAnalysis.CSharp.Workspaces for code analysis
#rb none
#rnx

#ROBOMERGE-SOURCE: CL 16961198 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16961204 by joe kirchoff in ue5-release-engine-test branch]
2021-07-26 17:15:01 -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