Commit Graph

11 Commits

Author SHA1 Message Date
Ben Marsh
c3df64ec48 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

[CL 17889706 by Ben Marsh in ue5-main branch]
2021-10-21 16:14:26 -04:00
Ben Marsh
e68d68c639 Horde: Add convenience methods in CompactBinarySerializer to read/write from byte spans.
[CL 17721938 by Ben Marsh in ue5-main branch]
2021-10-05 11:16:41 -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
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
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
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