Navigation
API > API/Runtime > API/Runtime/Core > API/Runtime/Core/Serialization
Inheritance Hierarchy
- FArchiveState
- FArchive
- FArchiveFileReaderGeneric
- FMovieSceneArchiveFileReader
- FArchiveFileWriterGeneric
- FMovieSceneArchiveFileWriter
- FArchiveLoadCompressedProxy
- FArchiveMD5
- FArchiveProxy
- FActorDescArchive
- FArchiveFromStructuredArchiveImpl
- FArchiveUObjectFromStructuredArchiveImpl
- FArchiveStackTraceWriter
- FChaosArchive
- FHierarchicalLogArchive
- FMaterialResourceProxyReader
- FNameAsStringIndexProxyArchive
- FNameAsStringProxyArchive
- FPropertyProxyArchive
- FShaderSaveArchive
- FArchiveSaveCompressedProxy
- FArchiveUObject
- FArchiveCountMem
- FArchiveCrc32
- FArchiveFindCulprit
- FArchiveGenerateReferenceGraph
- FArchiveHasReferences
- FArchiveObjectCrc32
- FZoneGraphObjectCRC32
- FArchiveObjectPropertyMapper
- FArchiveReferenceMarker
- FArchiveReplaceObjectRefBase
- FArchiveReplaceObjectRef
- FArchiveReplaceObjectAndStructPropertyRef
- FArchiveReplaceOrClearExternalReferences
- FArchiveScriptReferenceCollector
- FArchiveShowReferences
- FArchiveTopLevelReferenceCollector
- FDuplicateDataReader
- FDuplicateDataWriter
- FFindAssetsArchive
- FFindReferencersArchive
- FKeyBuilder
- FLinkerLoad
- FLinkerSave
- FReferenceCollectorArchive
- FSerializedObjectDataReader
- FTransaction::FObjectRecord::FReader
- FSerializedObjectDataWriterCommon
- FDiffableObjectDataWriter
- FSerializedObjectDataWriter
- FTransaction::FObjectRecord::FWriter
- FSoftObjectPathFixupArchive
- FArchiveWithDelegate
- FAsyncWriter
- FBitArchive
- FBitReader
- FNetBitReader
- FInBunch
- FBitWriter
- FBufferReaderBase
- FBufferReader
- FBufferReaderWithSHA
- FBulkDataReader
- FEditorBulkDataReader
- FBufferWriter
- FBuildVersionBuilder
- FBulkDataWriter
- FEditorBulkDataWriter
- FHttpStreamFArchive
- FLocalFileStreamFArchive
- FMemoryArchive
- FArrayReader
- FConcertIdentifierRewriter
- FConcertSyncObjectRewriter
- FGLTFMemoryArchive
- FLargeMemoryReader
- FArchiveStackTraceReader
- FLargeMemoryWriter
- FArchiveStackTrace
- FArchiveStackTraceMemoryWriter
- FMemoryReader
- FConcertIdentifierReader
- FConcertSyncObjectReader
- FMLAdapterMemoryReader
- FMemoryReaderView
- FObjectReader
- FBinaryObjectReader
- FStaticMemoryReader
- TMemoryHasher
- TMemoryWriter
- FMemoryWriter
- FConcertIdentifierWriter
- FConcertSyncObjectWriter
- FMaterialResourceMemoryWriter
- FMLAdapterMemoryWriter
- FObjectWriter
- FBinaryObjectWriter
- FMemoryWriter64
- TBufferArchive
- FBufferArchive
- FNetworkFileArchive
- FBufferArchive64
- FOutputDeviceMemory::FOutputDeviceMemoryProxyArchive
- FPreloadableArchive
- FPreloadableFile
- FPreloadableArchiveProxy
- FStorageServerRequest
- FStorageServerChunkBatchRequest
- FStorageServerResponse
References
| Module | Core |
| Header | /Engine/Source/Runtime/Core/Public/Serialization/Archive.h |
| Include | #include "Serialization/Archive.h" |
Syntax
struct FArchiveState
Variables
| Type | Name | Description | |
|---|---|---|---|
| uint8: 1 | ArAllowLazyLoading | Whether to allow lazy loading of bulk/secondary data. | |
| uint8: 1 | ArContainsCode | Quickly tell if an archive contains script code. | |
| uint8: 1 | ArContainsMap | Used to determine whether FArchive contains a level or world. | |
| const FCustomPropertyListNode * | ArCustomPropertyList | Custom property list attribute. | |
| uint32 | ArDebugSerializationFlags | Custom serialization modifier flags can be used for anything | |
| FEngineVersionBase | ArEngineVer | Holds the engine version. | |
| uint8: 1 | ArForceByteSwapping | Whether we should forcefully swap bytes. | |
| uint8: 1 | ArForceUnicode | Whether this archive wants to always save strings in UTF16 format even if they are ANSI characters | |
| uint8: 1 | ArIgnoreArchetypeRef | If true, we will not serialize archetype references for structs and classes. | |
| uint8: 1 | ArIgnoreClassGeneratedByRef | If true, we will not serialize ClassGeneratedBy reference in UClass. | |
| uint8: 1 | ArIgnoreClassRef | If true, UObject::Serialize will skip serialization of the Class property. | |
| uint8: 1 | ArIgnoreOuterRef | If true, we will not serialize the Outer reference in UObject. | |
| uint8: 1 | ArIsCountingMemory | Whether this archive is counting memory. | |
| uint8: 1 | ArIsFilterEditorOnly | Whether editor only properties are being filtered from the archive (or has been filtered). | |
| uint8: 1 | ArIsLoading | Whether this archive is for loading data. | |
| uint8: 1 | ArIsLoadingFromCookedPackage | Whether this archive is loading from a cooked package. | |
| uint8: 1 | ArIsModifyingWeakAndStrongReferences | Whether a reference collector is modifying the references and wants both weak and strong ones | |
| uint8: 1 | ArIsNetArchive | Whether or not this archive is sending/receiving network data | |
| uint8: 1 | ArIsObjectReferenceCollector | Whether this archive only cares about serializing object references. | |
| uint8: 1 | ArIsPersistent | Whether this archive saves to persistent storage. | |
| uint8: 1 | ArIsSaveGame | Whether this archive is saving/loading game state | |
| uint8: 1 | ArIsSaving | Whether this archive is for saving data. | |
| uint8: 1 | ArIsTextFormat | Whether this archive serializes to a text format. | |
| uint8: 1 | ArIsTransacting | Whether archive is transacting, which is used to keep track of changes to objects for things like the editor undo system. | |
| int32 | ArLicenseeUEVer | Holds the archive version for licensees. | |
| int64 | ArMaxSerializeSize | Max size of data that this archive is allowed to serialize. | |
| uint8: 1 | ArNoDelta | If true, do not perform delta serialization of properties. | |
| uint8: 1 | ArNoIntraPropertyDelta | If true, do not perform delta serialization within properties (e.g. TMaps and TSets). | |
| uint32 | ArPortFlags | Modifier flags that be used when serializing UProperties | |
| uint8: 1 | ArRequiresLocalizationGather | Used to determine whether FArchive contains data required to be gathered for localization. | |
| int32 | ArSerializingDefaults | Whether we are currently serializing defaults. > 0 means yes, <= 0 means no. | |
| uint8: 1 | ArShouldSkipBulkData | Whether bulk data serialization should be skipped or not. | |
| FPackageFileVersion | ArUEVer | These will be private in FArchive. | |
| uint8: 1 | ArUseCustomPropertyList | Set TRUE to use the custom property list attribute for serialization. | |
| uint8: 1 | ArUseUnversionedPropertySerialization | Whether tagged property serialization is replaced by faster unversioned serialization. | |
| uint8: 1 | ArWantBinaryPropertySerialization | Whether this archive wants properties to be serialized in binary form instead of tagged. | |
| bool | bCustomVersionsAreReset | Indicates if the custom versions container is in a 'reset' state. | |
| FArchiveCookData * | CookData | These will be private in FArchive. | |
| FCustomVersionContainer * | CustomVersionContainer | All the custom versions stored in the archive. | |
| FString * | LocalizationNamespacePtr | The localization namespace that this archive should use when serializing text properties. | |
| FProperty * | SerializedProperty | Holds the pointer to the property that is currently being serialized | |
| FArchiveSerializedPropertyChain * | SerializedPropertyChain | Holds the chain of properties that are currently being serialized |
Constructors
No constructors are accessible with public or protected access.
Destructors
No destructors are accessible with public or protected access.
Functions
| Type | Name | Description | |
|---|---|---|---|
| bool | AtEnd () |
Returns true if the current location within the backing data storage is at the end, always returns false if there is no storage. | |
| void | ClearError () |
Sets ArIsError to false, this does not clear any CriticalErrors | |
| bool | ContainsCode () |
Returns true if this archive contains native or generated code. | |
| bool | ContainsMap () |
Returns true if this archive contains a ULevel or UWorld object. | |
| const ITargetPlatform * | Returns the cooking target platform. | ||
| void | CopyTrivialFArchiveStatusMembers
(
const FArchiveState& ArchiveStatusToCopy |
These will be private in FArchive. | |
| void | CountBytes
(
SIZE_T InNum, |
Called to get the computed size from a size-detecting archive after it has finished serializing. | |
| int32 | Queries a custom version from the archive. | ||
| bool | DoDelta () |
Returns true if this archive should handle delta serialization for properties. | |
| bool | Returns true if this archive should perform delta serialization within properties (e.g. TMaps and TSets). | ||
| uint32 | EngineNetVer () |
Returns the engine-global network protocol version for this archive. | |
| FEngineVersionBase | EngineVer () |
Returns the compiled engine version used for this archive. | |
| bool | Returns true if this archive should always swap bytes, ignoring endian rules. | ||
| uint32 | GameNetVer () |
Returns the game-specific network protocol version for this archive. | |
| UObject * | GetArchetypeFromLoader
(
const UObject* Obj |
Called to retrieve the archetype from the event driven loader. | |
| FString | Returns the name of the Archive. | ||
| FString | See GetLocalizationNamespace | ||
| FArchiveCookContext * | |||
| FArchiveCookData * | GetCookData () |
||
| const FCustomVersionContainer & | Gets the custom version numbers for this archive. | ||
| uint32 | Returns the editor-only debug serialization flags. | ||
| bool | GetError () |
||
| FArchiveState & | Returns lowest level archive state, proxy archives will override this. | ||
| FLinker * | GetLinker () |
If this archive is a FLinkerLoad or FLinkerSave, returns a pointer to the ULinker portion. | |
| FString | Get the localization namespace that this archive should use when serializing text properties. | ||
| int64 | Returns the maximum size of data that this archive is allowed to serialize. | ||
| uint32 | GetPortFlags () |
Returns this archive's property serialization modifier flags. | |
| FUObjectSerializeContext * | Gets the current UObject serialization context for this archive. | ||
| FProperty * | Gets the property that is currently being serialized | ||
| const FArchiveSerializedPropertyChain * | Get the raw serialized property chain for this archive | ||
| void | GetSerializedPropertyChain
(
TArray< class FProperty* >& OutProperties |
Gets the chain of properties that are currently being serialized | |
| bool | HasAllPortFlags
(
uint32 Flags |
Checks to see if all of the passed in property serialization modifier flags are set. | |
| bool | HasAnyPortFlags
(
uint32 Flags |
Checks to see if any of the passed in property serialization modifier flags are set. | |
| bool | Returns true if this archive sould allow lazy loading of bulk / secondary data. | ||
| bool | Returns true if data larger than 1 byte should be swapped to deal with endian mismatches. | ||
| bool | IsCooking () |
Checks whether the archive is used for cooking. | |
| bool | Returns true if this archive is counting memory, normally CountBytes is called to get the size. | ||
| bool | Returns true if this archive contains critical errors that cannot be recovered from. | ||
| bool | Returns true if the stack of currently serialized properties contains an editor-only property | ||
| bool | IsError () |
Returns true if this archive contains errors, which means that further serialization is generally not safe. | |
| bool | Indicates whether this archive is filtering editor-only on save or contains data that had editor-only content stripped. | ||
| bool | Returns true if this archive wants to always save strings in UTF16 format even if they are ANSI characters. | ||
| bool | Returns true if this archive should ignore archetype references for structs and classes. | ||
| bool | Returns true if this archive should ignore the ClassGeneratedBy reference in UClass. | ||
| bool | Returns true if this archive should ignore the Class reference in UObject. | ||
| bool | Returns true if this archive should ignore the Outer reference in UObject. | ||
| bool | IsLoading () |
Returns true if this archive is for loading data. | |
| bool | Returns true if this archive is loading from a cooked package. | ||
| bool | Returns true if this archive should modify/search weak object references as well as strong ones. | ||
| bool | IsNetArchive () |
Whether or not this archive is serializing data being sent/received by the netcode | |
| bool | Returns true if this archive is only looking for UObject references. | ||
| bool | IsPersistent () |
Returns true if this archive is saving or loading data destined for persistent storage and should skip transient data. | |
| bool | IsSaveGame () |
Indicates whether this archive is saving or loading game state | |
| bool | IsSaving () |
Returns true if this archive is for saving data, this can also be a pre-save preparation archive. | |
| bool | Returns true if this archive is currently serializing class/struct default values. | ||
| bool | IsTextFormat () |
Returns true if this archive serializes to a structured text format. | |
| bool | Returns true if this archive is transacting, which is used to keep track of changes to objects for things like the editor undo system. | ||
| int32 | Returns the licensee-specific version used for this archive, will be 0 by default. | ||
| void | LinkProxy
(
FArchiveState& Inner, |
||
| bool | Returns true if this archive contains data required to be gathered for localization. | ||
| void | Reset () |
Resets all of the base archive members. | |
| void | Resets the custom version numbers for this archive. | ||
| void | SetArchiveState
(
const FArchiveState& InState |
Modifies current archive state, can be used to override flags. | |
| void | SetBaseLocalizationNamespace
(
const FString& InLocalizationNamespace |
See SetLocalizationNamespace | |
| void | SetByteSwapping
(
bool Enabled |
Toggle byte order swapping. | |
| void | SetCookData
(
FArchiveCookData* InCookData |
Marks that this archive is "cooking" by providing the cook data bundle. | |
| void | Sets the archiver IsCriticalError and IsError to true. | ||
| void | SetCustomVersion
(
const FGuid& Key, |
Sets a specific custom version | |
| void | SetCustomVersions
(
const FCustomVersionContainer& CustomVersionContainer |
Sets the custom version numbers for this archive. | |
| void | SetDebugSerializationFlags
(
uint32 InCustomFlags |
Sets the archives custom serialization modifier flags (nothing to do with PortFlags or Custom versions) | |
| void | SetEngineNetVer
(
const uint32 InEngineNetVer |
Sets the archive engine network version. | |
| void | SetEngineVer
(
const FEngineVersionBase& InVer |
Sets the archive engine version. | |
| void | SetError () |
Sets ArIsError to true. Also sets error in the proxy archiver if one is wrapping this. | |
| void | SetFilterEditorOnly
(
bool InFilterEditorOnly |
Sets a flag indicating that this archive needs to filter editor-only content. | |
| void | SetForceUnicode
(
bool bInForceUnicode |
Sets whether this archive wants to force saving as Unicode. | |
| void | SetGameNetVer
(
const uint32 InGameNetVer |
Sets the archive game network version. | |
| void | SetIsLoading
(
bool bInIsLoading |
Sets whether this archive is for loading data. | |
| void | SetIsLoadingFromCookedPackage
(
bool bInIsLoadingFromCookedPackage |
Sets whether the archive is loading from a cooked package. | |
| void | SetIsPersistent
(
bool bInIsPersistent |
Sets whether this archive is to persistent storage. | |
| void | SetIsSaving
(
bool bInIsSaving |
Sets whether this archive is for saving data. | |
| void | SetIsTextFormat
(
bool bInIsTextFormat |
Sets whether this archive is in text format. | |
| void | SetIsTransacting
(
bool bInIsTransacting |
Sets whether this archive is for transacting. | |
| void | SetLicenseeUEVer
(
int32 InVer |
Sets the archive licensee version number. | |
| void | SetLocalizationNamespace
(
const FString& InLocalizationNamespace |
Set the localization namespace that this archive should use when serializing text properties. | |
| void | SetPortFlags
(
uint32 InPortFlags |
Sets the archive's property serialization modifier flags | |
| void | SetSerializeContext
(
FUObjectSerializeContext* InLoadContext |
Sets the current UObject serialization context for this archive. | |
| void | SetSerializedProperty
(
FProperty* InProperty |
Overrides the property that is currently being serialized | |
| void | SetSerializedPropertyChain
(
const FArchiveSerializedPropertyChain* InSerializedPropertyChain, |
Set the raw serialized property chain for this archive, optionally overriding the serialized property too (or null to use the head of the property chain) | |
| void | SetShouldSkipCompilingAssets
(
bool Enabled |
Set whether or not it is allowed to skip serialization on assets still being compiled to avoid waiting unless strictly necessary. | |
| void | SetShouldSkipUpdateCustomVersion
(
bool bShouldSkip |
If set true, UsingCurrentVersion will not query the version registry to get the latest version data for the key if the version key is already set in the local container. | |
| void | SetUEVer
(
FPackageFileVersion InVer |
Sets the archive version number. | |
| void | SetUseUnversionedPropertySerialization
(
bool bInUseUnversioned |
Sets whether tagged property serialization should be replaced by faster unversioned serialization. | |
| void | SetWantBinaryPropertySerialization
(
bool bInWantBinaryPropertySerialization |
Sets whether this archive wants binary property serialization. | |
| bool | Returns true if this archive should ignore bulk data. | ||
| bool | Returns true if it is allowed to skip serialization on assets still being compiled to avoid waiting unless strictly necessary. | ||
| bool | ShouldSkipProperty
(
const FProperty* InProperty |
Checks whether the archive wants to skip the property independent of the other flags | |
| bool | Returns true if this Archive is does not update the custom version data for a given key if has already been set previously in the local custom versions container | ||
| int64 | Tell () |
Returns the current location within the backing data storage, which can possibly be passed to Seek later to restore a read/write location. | |
| void | Sets a flag indicating that this archive contains native or generated code. | ||
| void | Sets a flag indicating that this archive contains a ULevel or UWorld object. | ||
| void | Sets a flag indicating that this archive contains data required to be gathered for localization. | ||
| int64 | TotalSize () |
Returns total size of the backing data storage. | |
| FPackageFileVersion | UEVer () |
Returns the global engine serialization version used for this archive. | |
| void | UnlinkProxy
(
FArchiveState& Inner, |
||
| bool | Checks whether the archive is used to resolve out-of-date enum indexes If function returns true, the archive should be called only for objects containing user defined enum | ||
| bool | Returns true if tagged property serialization should be replaced by faster unversioned serialization. | ||
| bool | Returns true if this archive wants properties to be serialized in binary form instead of safer but slower tagged form. |
Classes
| Type | Name | Description | |
|---|---|---|---|
| FFastPathLoadBuffer | These are used for fastpath inline serializers |
Deprecated Functions
| Type | Name | Description | |
|---|---|---|---|
| int32 | Use LicenseeUEVer instead | ||
| void | SetCookingTarget
(
const ITargetPlatform* |
CookingTarget has been moved to FArchiveCookData. | |
| void | SetLicenseeUE4Ver
(
int32 InVer |
Use SetLicenseeUEVer instead | |
| void | SetUE4Ver
(
int32 InVer |
Use SetUEVer instead which takes the version as a FPackageFileVersion. See the documentation for further details | |
| int32 | UE4Ver () |
Use UEVer instead which returns the version as a FPackageFileVersion. See the documentation for further details |