85 Commits

Author SHA1 Message Date
ben marsh
2af764e351 Merging latest Horde changes from Main.
[CL 36756615 by ben marsh in 5.5 branch]
2024-10-01 19:23:06 -04:00
Ryan Hummer
4af2fd066d Updating Dev-Release-5.5 from Main at CL #36144969
#okforversepublic

[CL 36146571 by Ryan Hummer in Dev-5.5 branch]
2024-09-10 10:26:02 -04:00
ben marsh
eccce1c827 Horde: Remove IDisposable interface from IStorageClient. We want to be able to pass IBlobRef objects around without having to know anything about where they're stored.
#rnx

[CL 35560717 by ben marsh in ue5-main branch]
2024-08-15 08:42:05 -04:00
ben marsh
1c30db3a84 Horde: Rename IBlobRef -> IHashedBlobRef and IBlobHandle -> IBlobRef. Also add an unhashed IBlobRef<> interface.
#rnx

[CL 35092301 by ben marsh in ue5-main branch]
2024-07-25 15:09:26 -04:00
ben marsh
09bdb264cf Horde: Use IHordeClient within the agent for all RPC/storage traffic.
#rnx

[CL 33721842 by ben marsh in ue5-main branch]
2024-05-17 09:05:02 -04:00
ryan hummer
bfc3ecc4ed [Backout] - CL33703148
[FYI] Ben.Marsh
Original CL Desc
-----------------------------------------------------------------
Horde: Use IHordeClient within the agent for all RPC/storage traffic.

#rnx

[CL 33705663 by ryan hummer in ue5-main branch]
2024-05-16 19:43:09 -04:00
ben marsh
a4d4f8578d Horde: Use IHordeClient within the agent for all RPC/storage traffic.
#rnx

[CL 33703170 by ben marsh in ue5-main branch]
2024-05-16 18:15:57 -04:00
ben marsh
ab80ea0a41 Horde: Add separate types for blob handles with a hash (IBlobRef) and blob handles with a hash and serialization options (IBlobRef<T>). Storing serialization options inside IBlobRef<T> implementations removes a lot of boilerplate code to pass options objects around, and ensures consistency when navigating object hierarchies.
[CL 30957772 by ben marsh in ue5-main branch]
2024-01-27 19:24:46 -05:00
ben marsh
f0e4c496ae Horde: Merge IStorageWriter and IBlobWriter.
[CL 30667967 by ben marsh in ue5-main branch]
2024-01-17 15:55:37 -05:00
ben marsh
a4265b060a Horde: Refactor of IStorageClient/IStorageBackend.
* IStorageBackend now includes methods for manipulating aliases and refs. All interaction with blobs is done through BlobLocators. This is the level of abstraction that the HTTP backend / controllers operate at.
* IStorageClient only manipulates blobs via handles, which abstracts any packing/compression/buffering that BundleStorageClient does.
* IBlobHandles no longer needs to include methods for partial reads, nesting, etc... Nesting of blobs within packets/bundles is now an implementation detail within the bundle storage client.

[CL 30648868 by ben marsh in ue5-main branch]
2024-01-16 18:08:13 -05:00
ben marsh
9ccdc40f9c Horde: Allow customizing blob serializers to use in different contexts, allowing us to lock serialization formats when talking to remote agents of a particular version.
To support this, the Node base class and serialization methods have been removed, and serialization is performed through a BlobConverter<T> instance created and cached according to a BlobSerializationOptions object. Custom instances of serializers with different configurations may be registered with this object, allowing different code paths to use different serialization settings.

#jira UE-203605

[CL 30591420 by ben marsh in ue5-main branch]
2024-01-12 08:59:27 -05:00
joe kirchoff
9cfbb6a32f Fix warnings in ModuleRules
#rnx

[CL 30431868 by joe kirchoff in ue5-main branch]
2023-12-21 13:35:12 -05:00
ben marsh
4373db4c84 Horde: Add helper methods for writing directory trees to storage writers.
[CL 30292017 by ben marsh in ue5-main branch]
2023-12-13 09:45:27 -05:00
ben marsh
3647ef962b Horde: Add a typed HTTP client for communicating with the Horde server. Removes boilerplate code for getting an access token, configuring request objects, and parsing responses. Synchronous for now.
[CL 30080857 by ben marsh in ue5-main branch]
2023-12-04 10:09:40 -05:00
ben marsh
5ed85a8c97 Horde: Move RemoteWorkerCpp into the new HordeTest app built by UBT.
[CL 30054172 by ben marsh in ue5-main branch]
2023-12-01 16:33:52 -05:00
ben marsh
c28154290a Horde: Add a sample app which demonstrates interop with Horde from engine code.
[CL 30053161 by ben marsh in ue5-main branch]
2023-12-01 16:09:39 -05:00
ben marsh
de0ad7e1c0 Horde: Missing preprocessor settings for building RemoteWorkerCpp through standalone project.
#jira

[CL 29921646 by ben marsh in ue5-main branch]
2023-11-24 12:26:09 -05:00
ben marsh
0fd23ae2ee Horde: Add missing files to the mock-UE library.
#jira

[CL 29921451 by ben marsh in ue5-main branch]
2023-11-24 12:15:27 -05:00
ben marsh
a833c98218 Horde: Update remote worker sample to match changes to UE Horde module.
#jira

[CL 29919504 by ben marsh in ue5-main branch]
2023-11-24 09:53:52 -05:00
ben marsh
f1e588128b Horde: Move ComputePlatform.h out of public API.
[CL 29919237 by ben marsh in ue5-main branch]
2023-11-24 09:24:22 -05:00
ben marsh
c8465d5c15 Horde: Use UE types in Horde library.
[FYI] Laura.Hermanns

[CL 29893802 by ben marsh in ue5-main branch]
2023-11-22 14:09:38 -05:00
ben marsh
3d2661ad0f Horde: Convert public C++ API for Horde library to use UE types.
[CL 29891273 by ben marsh in ue5-main branch]
2023-11-22 12:25:59 -05:00
ben marsh
d7a2bc311c Horde: Add .build.cs and .target.cs files for RemoteWorkerCpp.
[CL 29886486 by ben marsh in ue5-main branch]
2023-11-22 07:49:58 -05:00
carl bystrom
97ebad095d EpicGames.Horde: Refactor remote exec client to use connection metadata
[CL 29710398 by carl bystrom in ue5-main branch]
2023-11-14 07:59:05 -05:00
ben marsh
2f59d171a4 Horde: Fix C++ remote worker compilation in non-debug configurations (missing C++20 language flag).
#jira

[CL 29610838 by ben marsh in ue5-main branch]
2023-11-09 16:52:21 -05:00