-
Notifications
You must be signed in to change notification settings - Fork 0
GMPArchive
The archive types GMP serialises through.
Declared in Plugins/GMP/Source/GMP/GMP/GMPArchive.h
class FGMPMemoryArchive : public FMemoryArchive
{
protected:
virtual FArchive& operator<<(UObject*& Object) override;
};
class GMP_API FGMPMemoryWriter : public FGMPMemoryArchive { ... };
class GMP_API FGMPMemoryReader : public FGMPMemoryArchive { ... };
class GMP_API FGMPNetBitWriter : public FNetBitWriter { ... };
class GMP_API FGMPNetBitReader : public FNetBitReader { ... };
| Pair | For | Object references |
|---|---|---|
FGMPMemoryWriter / FGMPMemoryReader
|
plain memory, sized buffer | via the overridden operator<<
|
FGMPNetBitWriter / FGMPNetBitReader
|
the network path |
UPackageMap-aware, so references resolve on the far side |
FGMPMemoryArchive exists to override one thing:
virtual FArchive& operator<<(UObject*& Object) override;A default memory archive would serialise the raw pointer value, which is meaningless once it leaves the
process. Overriding it is what makes object references survive — and it is the reason to use these types
rather than a plain FMemoryWriter.
FGMPMemoryWriter writes its size through a caller-supplied uint32*, so the buffer length travels with
the payload.
GMP also bridges JSON, Protobuf (upb) and YAML to UStruct reflection, with FGMPValueOneOf for dynamic
access to a decoded value that has no static type. These are independent of the messaging core and usable
on their own; they are enabled by their own build switches (GMP_WITH_UPB, GMP_WITH_YAML,
GMP_WITH_JSONDOM).
GMP · Reference wiki — one page per named thing. Guided introduction: project site · 中文站点 · measured dispatch stack Source: repository · README · README 中文
Pages here are generated from wiki/ in the main repository — edit there, not on the wiki.
Concepts
- Why a string key
- Dispatch layers
- Parameter compatibility
- Signature inference
- Key baking
- Transparent rewrite
- Jump tracing
Sending and listening
- NotifyMessage family
- ListenMessage family
- StoreObjectMessage
- MSGKEY
- FSigSource
- FSigHandle
- FGMPKey
- FGMPResponder
Dispatch internals
Reflection and data
Editor
Build