Navigation
API > API/Runtime > API/Runtime/Engine > API/Runtime/Engine/Sound
References
| Module | Engine |
| Header | /Engine/Source/Runtime/Engine/Classes/Sound/QuartzQuantizationUtilities.h |
| Include | #include "Sound/QuartzQuantizationUtilities.h" |
Syntax
template<class ListenerType>
class TQuartzShareableCommandQueue
Remarks
Template class for mono-directional MPSC command queues
in order to enforce thread-safe access to the object executing the commands, "listener type" is the type of the object that is being accessed in the commands that object will have to provide a 'this' ptr (of type ListenerType) in order to invoke the commands on itself. (The lambdas do NOT and should NOT cache a ptr or reference to the target).
User-provided lambdas can take any (single) argument type T in PushEvent() but there must exist a ListenerType::ExecCommand(T) overload for any PushEvent(T) instantiated.
(see FQuartzTickableObject and FQuartzClock as examples)
Constructors
| Type | Name | Description | |
|---|---|---|---|
| Ctor |
Destructors
| Type | Name | Description | |
|---|---|---|---|
| Dtor |
Functions
| Type | Name | Description | |
|---|---|---|---|
| TSharedPtr< TQuartzShareableCommandQueue< ListenerType >, ESPMode::ThreadSafe > | Create () |
Static helper to create a new sharable queue | |
| void | PumpCommandQueue
(
ListenerType* InListener |
||
| void | PushCommand
(
TFunction< void(ListenerType*)> InCommand |
||
| void | PushEvent
(
const T& Data |
Note: ListenerType must have a ExecCommand() overload for each instantiation of this method |