Navigation
API > API/Runtime > API/Runtime/Chaos
Simple templated implementation that uses lock free queues to manage memory
| Name | TSimCallbackObject |
| Type | class |
| Header File | /Engine/Source/Runtime/Experimental/Chaos/Public/Chaos/SimCallbackObject.h |
| Include Path | #include "Chaos/SimCallbackObject.h" |
Syntax
template<typename TInputType, typename TOutputType, ESimCallbackOptions TOptions>
class TSimCallbackObject : public Chaos::ISimCallbackObject
Derived Classes
TSimCallbackObject derived class hierarchy
- FAsyncNetworkPhysicsComponent
- FBuoyancyManagerAsyncCallback
- FBuoyancySubsystemSimCallback
- TUserDataManagerPT
- FChaosSceneSimCallback
- FChaosSimModuleManagerAsyncCallback
- FChaosVehicleManagerAsyncCallback
- FCharacterMovementComponentAsyncCallback
- FNetworkPhysicsSettingsComponentAsync
- FPhysicsMoverManagerAsyncCallback
- FPhysicsReplicationAsync
- FPhysicsReplicationCacheAsync
- FPhysicsReplicationLODAsync
- FSpatialReadinessSimCallback
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
| Chaos/SimCallbackObject.h | |||
TSimCallbackObject
(
bool InRunOnFrozenGameThread |
Chaos/SimCallbackObject.h |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| CurrentOutput_External | TOutputType * | Chaos/SimCallbackObject.h | ||
| InputBacking | TArray< TUniquePtr< TInputType > > | Chaos/SimCallbackObject.h | ||
| InputPool | TSpscQueue< TInputType * > | Chaos/SimCallbackObject.h | ||
| OutputBacking | TArray< TUniquePtr< TOutputType > > | Chaos/SimCallbackObject.h | ||
| OutputPool | TSpscQueue< TOutputType * > | Chaos/SimCallbackObject.h | ||
| OutputQueue | TSpscQueue< TOutputType * > | Chaos/SimCallbackObject.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
const TInputType * GetConsumerInput_Internal () |
Get the input associated with the current sim step. | Chaos/SimCallbackObject.h | |
TInputType * GetProducerInputData_External() |
Gets the current producer input data. This is what the external thread should be writing to | Chaos/SimCallbackObject.h | |
TOutputType & GetProducerOutputData_Internal () |
Gets the current producer output data. | Chaos/SimCallbackObject.h | |
bool IsOutputQueueEmpty_External() |
Check if the output queue is empty of data Can be used while iterating the queue through PopOutputData_External and PopFutureOutputData_External to check if the current data is the last data. | Chaos/SimCallbackObject.h | |
TSimCallbackOutputHandle< TOutputType > PopFutureOutputData_External () |
Pop up to the latest output, even if it is in the future. | Chaos/SimCallbackObject.h | |
TSimCallbackOutputHandle< TOutputType > PopOutputData_External () |
Gets the output data produced in order up to and including SimTime. | Chaos/SimCallbackObject.h |
Overridden from ISimCallbackObject
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void FreeOutputData_External
(
FSimCallbackOutput* Output |
Free the output data. | Chaos/SimCallbackObject.h |