UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::RemoteObject::Transfer Namespace Reference

Namespaces

namespace  Private
 

Classes

struct  FMigrateSendParams
 
class  FObjectMigrationRequest
 
class  FObjectMigrationRequests
 
class  FPendingObjectRequest
 
class  FRemoteObjectRequest
 
class  FRemoteObjectTransferQueue
 

Functions

UObjectMigrateObjectFromObjectData (FRemoteObjectData &ObjectData, const FUObjectMigrationContext &MigrationContext)
 
 DEFINE_MIGRATION_DELEGATE (RemoteObjectTransferDelegate)
 
 DEFINE_MIGRATION_DELEGATE (RemoteObjectDeniedTransferDelegate)
 
 DEFINE_MIGRATION_DELEGATE (RequestRemoteObjectDelegate)
 
 DEFINE_MIGRATION_DELEGATE (OnObjectDataReceivedDelegate)
 
 DEFINE_MIGRATION_DELEGATE (OnObjectsReceivedDelegate)
 
 DEFINE_MIGRATION_DELEGATE (OnObjectDataSentDelegate)
 
 DEFINE_MIGRATION_DELEGATE (OnObjectsSentDelegate)
 
 DEFINE_MIGRATION_DELEGATE (OnObjectTouchedDelegate)
 
 DEFINE_MIGRATION_DELEGATE (StoreRemoteObjectDataDelegate)
 
 DEFINE_MIGRATION_DELEGATE (RestoreRemoteObjectDataDelegate)
 
void MigrateObjectFromRemoteServer (FRemoteObjectId ObjectId, FRemoteServerId CurrentOwnerServerId, UObject *DestinationOuter)
 
void TouchResidentObject (UObject *Object)
 
void TransferObjectOwnershipToRemoteServer (UObject *Object, FRemoteServerId DestinationServerId)
 
void RegisterSharedObject (UObject *Object)
 
void RegisterRemoteObjectId (FRemoteObjectId Id, FRemoteServerId ResidentServerId)
 
void GetAllBorrowedObjects (TArray< FRemoteObjectId > &OutBorrowedObjectIds)
 
void MigrateObjectToRemoteServer (FRemoteObjectId ObjectId, FRemoteServerId DestinationServerId)
 
void MigrateObjectToRemoteServerWithExplicitPriority (FRemoteWorkPriority RequestPriority, FRemoteObjectId ObjectId, FRemoteServerId DestinationServerId)
 
void OnObjectDataReceived (FRemoteServerId OwnerServerId, FRemoteServerId PhysicsId, uint32 PhysicsLocalIslandId, FRemoteObjectId ObjectId, FRemoteServerId RemoteServerId, FRemoteObjectData &Data)
 
void OnObjectDataDenied (FRemoteObjectId ObjectId, FRemoteServerId RemoteServerId)
 
void InitRemoteObjectTransfer ()
 
UE_FORCEINLINE_HINT FObjectPtr RemoteObjectIdToObjectPtr (FRemoteObjectId RemoteId)
 

Variables

const FRemoteServerId DatabaseId (ERemoteServerIdConstants::Database)
 
FRemoteObjectTransferQueue GTransferQueue
 
COREUOBJECT_API TDelegate< void(const FMigrateSendParams &)> RemoteObjectTransferDelegate
 
COREUOBJECT_API TDelegate< void(FRemoteObjectId, FRemoteServerId)> RemoteObjectDeniedTransferDelegate
 
COREUOBJECT_API TDelegate< void(FRemoteWorkPriority, FRemoteObjectId, FRemoteServerId, FRemoteServerId)> RequestRemoteObjectDelegate
 
COREUOBJECT_API TMulticastDelegate< void(const FRemoteObjectData &, const FUObjectMigrationContext &)> OnObjectDataReceivedDelegate
 
COREUOBJECT_API TMulticastDelegate< void(const TArray< UObject * > &, const FUObjectMigrationContext &)> OnObjectsReceivedDelegate
 
COREUOBJECT_API TMulticastDelegate< void(const FRemoteObjectData &, const FUObjectMigrationContext &)> OnObjectDataSentDelegate
 
COREUOBJECT_API TMulticastDelegate< void(const TSet< UObject * > &, const FUObjectMigrationContext &)> OnObjectsSentDelegate
 
COREUOBJECT_API TMulticastDelegate< void(FRemoteTransactionId, FRemoteObjectId)> OnObjectTouchedDelegate
 
COREUOBJECT_API TDelegate< void(const FMigrateSendParams &)> StoreRemoteObjectDataDelegate
 
COREUOBJECT_API TDelegate< void(const FUObjectMigrationContext &)> RestoreRemoteObjectDataDelegate
 

Function Documentation

◆ DEFINE_MIGRATION_DELEGATE() [1/10]

UE::RemoteObject::Transfer::DEFINE_MIGRATION_DELEGATE ( OnObjectDataReceivedDelegate  )

◆ DEFINE_MIGRATION_DELEGATE() [2/10]

UE::RemoteObject::Transfer::DEFINE_MIGRATION_DELEGATE ( OnObjectDataSentDelegate  )

◆ DEFINE_MIGRATION_DELEGATE() [3/10]

UE::RemoteObject::Transfer::DEFINE_MIGRATION_DELEGATE ( OnObjectsReceivedDelegate  )

◆ DEFINE_MIGRATION_DELEGATE() [4/10]

UE::RemoteObject::Transfer::DEFINE_MIGRATION_DELEGATE ( OnObjectsSentDelegate  )

◆ DEFINE_MIGRATION_DELEGATE() [5/10]

UE::RemoteObject::Transfer::DEFINE_MIGRATION_DELEGATE ( OnObjectTouchedDelegate  )

◆ DEFINE_MIGRATION_DELEGATE() [6/10]

UE::RemoteObject::Transfer::DEFINE_MIGRATION_DELEGATE ( RemoteObjectDeniedTransferDelegate  )

◆ DEFINE_MIGRATION_DELEGATE() [7/10]

UE::RemoteObject::Transfer::DEFINE_MIGRATION_DELEGATE ( RemoteObjectTransferDelegate  )

◆ DEFINE_MIGRATION_DELEGATE() [8/10]

UE::RemoteObject::Transfer::DEFINE_MIGRATION_DELEGATE ( RequestRemoteObjectDelegate  )

◆ DEFINE_MIGRATION_DELEGATE() [9/10]

UE::RemoteObject::Transfer::DEFINE_MIGRATION_DELEGATE ( RestoreRemoteObjectDataDelegate  )

◆ DEFINE_MIGRATION_DELEGATE() [10/10]

UE::RemoteObject::Transfer::DEFINE_MIGRATION_DELEGATE ( StoreRemoteObjectDataDelegate  )

◆ GetAllBorrowedObjects()

COREUOBJECT_API void UE::RemoteObject::Transfer::GetAllBorrowedObjects ( TArray< FRemoteObjectId > &  OutBorrowedObjectIds)

Returns the list of all object IDs currently borrowed from another server.

◆ InitRemoteObjectTransfer()

COREUOBJECT_API void UE::RemoteObject::Transfer::InitRemoteObjectTransfer ( )

◆ MigrateObjectFromObjectData()

UObject * UE::RemoteObject::Transfer::MigrateObjectFromObjectData ( FRemoteObjectData ObjectData,
const FUObjectMigrationContext MigrationContext 
)

◆ MigrateObjectFromRemoteServer()

COREUOBJECT_API void UE::RemoteObject::Transfer::MigrateObjectFromRemoteServer ( FRemoteObjectId  ObjectId,
FRemoteServerId  CurrentOwnerServerId,
UObject DestinationOuter = nullptr 
)

Migrates an object from a remote server (temp function)

Parameters
ObjectIdRemote object id
CurrentOwnerServerIdId of a remote server that currently owns the object
DestinationOuterOptional outer the migrated object should be reparented to
Returns
Migrated object

◆ MigrateObjectToRemoteServer()

COREUOBJECT_API void UE::RemoteObject::Transfer::MigrateObjectToRemoteServer ( FRemoteObjectId  ObjectId,
FRemoteServerId  DestinationServerId 
)

Migrates an object to a remote server without changing ownership

Parameters
ObjectIdRemote object id
DestinationServerIdId of a remote server to receive the object

◆ MigrateObjectToRemoteServerWithExplicitPriority()

COREUOBJECT_API void UE::RemoteObject::Transfer::MigrateObjectToRemoteServerWithExplicitPriority ( FRemoteWorkPriority  RequestPriority,
FRemoteObjectId  ObjectId,
FRemoteServerId  DestinationServerId 
)

◆ OnObjectDataDenied()

COREUOBJECT_API void UE::RemoteObject::Transfer::OnObjectDataDenied ( FRemoteObjectId  ObjectId,
FRemoteServerId  RemoteServerId 
)

Called when a remote object request was denied by a remote server

Parameters
ObjectIdRemote object id
RemoteServerIdServer that owns the object data

◆ OnObjectDataReceived()

COREUOBJECT_API void UE::RemoteObject::Transfer::OnObjectDataReceived ( FRemoteServerId  OwnerServerId,
FRemoteServerId  PhysicsId,
uint32  PhysicsLocalIslandId,
FRemoteObjectId  ObjectId,
FRemoteServerId  RemoteServerId,
FRemoteObjectData Data 
)

Called when remote object data has been received from a remote server

Parameters
ObjectIdRemote object id
RemoteServerIdServer that sent object data
DataRemote object data. Data ownership is transferred to the remote object queue

◆ RegisterRemoteObjectId()

COREUOBJECT_API void UE::RemoteObject::Transfer::RegisterRemoteObjectId ( FRemoteObjectId  Id,
FRemoteServerId  ResidentServerId 
)

Registers object ID as known to be owned by another server, without migrating it

Parameters
ObjectIdRemote object id
OwnerServerIdId of a remote server that currently owns the object

◆ RegisterSharedObject()

COREUOBJECT_API void UE::RemoteObject::Transfer::RegisterSharedObject ( UObject Object)

Registers object for sharing, marking it as owned by the current server

Parameters
Objectto make shareable

◆ RemoteObjectIdToObjectPtr()

UE_FORCEINLINE_HINT FObjectPtr UE::RemoteObject::Transfer::RemoteObjectIdToObjectPtr ( FRemoteObjectId  RemoteId)

Utility that converts FRemoteObjectId to TObjectPtr of a given type. Will not resolve the object if it's not local.

◆ TouchResidentObject()

COREUOBJECT_API void UE::RemoteObject::Transfer::TouchResidentObject ( UObject Object)

Reports code that touches a resident object

◆ TransferObjectOwnershipToRemoteServer()

COREUOBJECT_API void UE::RemoteObject::Transfer::TransferObjectOwnershipToRemoteServer ( UObject Object,
FRemoteServerId  DestinationServerId 
)

Migrates and transfers ownership of an object to a remote server

Parameters
ObjectLocal object to migrate
DestinationServerIdId of a remote server to receive the object and assume ownership

Variable Documentation

◆ DatabaseId

COREUOBJECT_API const FRemoteServerId UE::RemoteObject::Transfer::DatabaseId ( ERemoteServerIdConstants::Database  )

◆ GTransferQueue

FRemoteObjectTransferQueue UE::RemoteObject::Transfer::GTransferQueue

◆ OnObjectDataReceivedDelegate

COREUOBJECT_API TMulticastDelegate<void(const FRemoteObjectData& , const FUObjectMigrationContext& )> UE::RemoteObject::Transfer::OnObjectDataReceivedDelegate
extern

Delegate executed when objects have been migrated from another server.

◆ OnObjectDataSentDelegate

COREUOBJECT_API TMulticastDelegate<void(const FRemoteObjectData& , const FUObjectMigrationContext& )> UE::RemoteObject::Transfer::OnObjectDataSentDelegate
extern

Delegate executed when object data has been migrated to another server

◆ OnObjectsReceivedDelegate

COREUOBJECT_API TMulticastDelegate<void(const TArray<UObject*>& , const FUObjectMigrationContext& )> UE::RemoteObject::Transfer::OnObjectsReceivedDelegate
extern

Delegate executed when objects have been migrated from another server.

◆ OnObjectsSentDelegate

COREUOBJECT_API TMulticastDelegate<void(const TSet<UObject*>& , const FUObjectMigrationContext& )> UE::RemoteObject::Transfer::OnObjectsSentDelegate
extern

Delegate executed when objects have been migrated to another server. Migrated objects can still be resolved with weak pointers but at this point any changes to their internal state won't be migrated across to the remote server

◆ OnObjectTouchedDelegate

COREUOBJECT_API TMulticastDelegate<void(FRemoteTransactionId , FRemoteObjectId )> UE::RemoteObject::Transfer::OnObjectTouchedDelegate
extern

Delegate executed when an object has been accessed by a transaction

◆ RemoteObjectDeniedTransferDelegate

COREUOBJECT_API TDelegate<void(FRemoteObjectId , FRemoteServerId )> UE::RemoteObject::Transfer::RemoteObjectDeniedTransferDelegate
extern

Delegate that handles an object request being denied

◆ RemoteObjectTransferDelegate

COREUOBJECT_API TDelegate<void(const FMigrateSendParams& )> UE::RemoteObject::Transfer::RemoteObjectTransferDelegate
extern

Delegate that transfers object data to another server

◆ RequestRemoteObjectDelegate

COREUOBJECT_API TDelegate<void(FRemoteWorkPriority , FRemoteObjectId , FRemoteServerId , FRemoteServerId )> UE::RemoteObject::Transfer::RequestRemoteObjectDelegate
extern

Delegate that requests remote object data from LastKnownResidentServerId to be transferred to DestinationServerId. Allows requests to be forwarded if ObjectId does not reside on LastKnownResidentServerId.

◆ RestoreRemoteObjectDataDelegate

COREUOBJECT_API TDelegate<void(const FUObjectMigrationContext&)> UE::RemoteObject::Transfer::RestoreRemoteObjectDataDelegate
extern

Delegate that restores object data from a database.

◆ StoreRemoteObjectDataDelegate

COREUOBJECT_API TDelegate<void(const FMigrateSendParams&)> UE::RemoteObject::Transfer::StoreRemoteObjectDataDelegate
extern

Delegate that stores locally unrachable object data into a database.