class BinaryCloner

Helper class that performs cloning of an object that implements RTTI.

Public

Methods

staticClone

static SPtr<IReflectable> Clone(IReflectable *object, bool shallow = false)

Returns a copy of the provided object with identical data.

object
Object to clone.
shallow
If false then all referenced objects will be cloned as well, otherwise the references to the original objects will be kept.

Private

Methods

staticGatherExternalReferences

static ObjectExternalReferences GatherExternalReferences(IReflectable *object, FrameAllocator &allocator, RTTIOperationContext &rttiOperationContext)

Iterates over the provided object hierarchy and retrieves all object references which are returned in a hierarchical format for easier parsing.

staticRestoreExternalReferences

static void RestoreExternalReferences(IReflectable *object, FrameAllocator &allocator, const ObjectExternalReferences &externalReferences, RTTIOperationContext &rttiOperationContext)

Restores a set of references retrieved by GatherExternalReferences() and applies them to a specific object.

Type of the object must be the same as the type that was used when calling GatherExternalReferences().