Open 3D Engine (O3DE), the successor to Lumberyard, is now available in Developer Preview. Download O3DE or visit the AWS Game Tech blog to learn more. |
Internal class that contains data about EBusTraits . More...
Public Types |
|
using | Traits |
Properties that you use to configure an
EBus
.
More...
|
|
using | AllocatorType |
Allocator used by the
EBus
.
More...
|
|
using | InterfaceType |
The class that defines the interface of the
EBus
.
More...
|
|
using | Events |
The events defined by the
EBus
interface.
More...
|
|
using | BusIdType |
The type of ID that is used to address the
EBus
.
More...
|
|
using | BusIdOrderCompare |
Sorting function for
EBus
address IDs.
More...
|
|
using | MutexType |
Locking primitive that is used when connecting handlers to the
EBus
or executing events.
More...
|
|
using | EBNode |
An address on the
EBus
.
More...
|
|
using | BusesContainer |
Contains all of the addresses on the
EBus
.
More...
|
|
using | EventQueueMutexType |
Locking primitive that is used when executing events in the event queue.
More...
|
|
using | BusPtr |
Pointer to an address on the bus.
More...
|
|
using | HandlerNode |
Pointer to a handler node.
More...
|
|
Static Public Attributes |
|
static const bool | EnableEventQueue |
Specifies whether the
EBus
supports an event queue.
More...
|
|
static const bool | HasId |
True if the
EBus
supports more than one address.
More...
|
|
Detailed Description
template<class Interface, class BusTraits>
struct AZ::BusInternal::EBusImplTraits< Interface, BusTraits >
Internal class that contains data about EBusTraits .
- Template Parameters
-
Interface A class whose virtual functions define the events that are dispatched or received by the EBus . Traits A class that inherits from EBusTraits and configures the EBus . This parameter is optional if the Interface
class inherits from EBusTraits .
Member Typedef Documentation
◆ AllocatorType
using AZ::BusInternal::EBusImplTraits < Interface, BusTraits >:: AllocatorType = typename Traits::AllocatorType |
Allocator used by the EBus .
The default setting is AZStd::allocator, which uses AZ::SystemAllocator.
◆ BusesContainer
using AZ::BusInternal::EBusImplTraits < Interface, BusTraits >:: BusesContainer = typename AZStd::Utils::if_c<Traits::AddressPolicy == EBusAddressPolicy::Single , typename AZ::EBBusSingle< EBNode >, typename AZStd::Utils::if_c<Traits::AddressPolicy == EBusAddressPolicy::ById , typename AZ::EBBusMulti< EBNode >, typename AZ::EBBusMultiOrdered< EBNode > >::type>::type |
Contains all of the addresses on the EBus .
◆ BusIdOrderCompare
using AZ::BusInternal::EBusImplTraits < Interface, BusTraits >:: BusIdOrderCompare = typename Traits::BusIdOrderCompare |
Sorting function for EBus address IDs.
Used only when the AddressPolicy is
AZ::EBusAddressPolicy::ByIdAndOrdered
. If an event is dispatched without an ID, this function determines the order in which each address receives the event. The function must satisfy
AZStd::binary_function<BusIdType, BusIdType, bool>
.
The following example shows a sorting function that meets these requirements.
◆ BusIdType
using AZ::BusInternal::EBusImplTraits < Interface, BusTraits >:: BusIdType = typename Traits::BusIdType |
The type of ID that is used to address the EBus .
Used only when the address policy is
AZ::EBusAddressPolicy::ById
or
AZ::EBusAddressPolicy::ByIdAndOrdered
. The type must support
AZStd::hash<ID>
and
bool operator==(const ID&, const ID&)
.
◆ BusPtr
using AZ::BusInternal::EBusImplTraits < Interface, BusTraits >:: BusPtr = typename EBNode::pointer |
Pointer to an address on the bus.
◆ EBNode
using AZ::BusInternal::EBusImplTraits < Interface, BusTraits >:: EBNode = typename AZStd::Utils::if_c<Traits::HandlerPolicy == EBusHandlerPolicy::Single , typename AZ::EBECSingle<Interface, Traits >, typename AZStd::Utils::if_c<Traits::HandlerPolicy == EBusHandlerPolicy::MultipleAndOrdered , typename AZ::EBECMultiOrdered<Interface, Traits >, typename AZ::EBECMulti<Interface, Traits > >::type>::type |
An address on the EBus .
◆ EventQueueMutexType
using AZ::BusInternal::EBusImplTraits < Interface, BusTraits >:: EventQueueMutexType = typename AZStd::Utils::if_c<AZStd::is_same<typename Traits::EventQueueMutexType, NullMutex >::value, MutexType , typename Traits::EventQueueMutexType>::type |
Locking primitive that is used when executing events in the event queue.
◆ Events
using AZ::BusInternal::EBusImplTraits < Interface, BusTraits >:: Events = Interface |
The events defined by the EBus interface.
◆ HandlerNode
using AZ::BusInternal::EBusImplTraits < Interface, BusTraits >:: HandlerNode = typename EBNode::HandlerNode |
Pointer to a handler node.
◆ InterfaceType
using AZ::BusInternal::EBusImplTraits < Interface, BusTraits >:: InterfaceType = Interface |
The class that defines the interface of the EBus .
◆ MutexType
using AZ::BusInternal::EBusImplTraits < Interface, BusTraits >:: MutexType = typename Traits::MutexType |
Locking primitive that is used when connecting handlers to the EBus or executing events.
By default, all access is assumed to be single threaded and no locking occurs. For multithreaded access, specify a mutex of the following type.
- For simple multithreaded cases, use AZStd::mutex.
- For multithreaded cases where an event handler sends a new event on the same bus or connects/disconnects while handling an event on the same bus, use AZStd::recursive_mutex.
◆ Traits
using AZ::BusInternal::EBusImplTraits < Interface, BusTraits >:: Traits = BusTraits |
Properties that you use to configure an EBus .
For more information, see EBusTraits .
Member Data Documentation
◆ EnableEventQueue
|
static |
Specifies whether the EBus supports an event queue.
You can use the event queue to execute events at a later time. To execute the queued events, you must call
<BusName>::ExecuteQueuedEvents()
. By default, the event queue is disabled.
◆ HasId
|
static |
True if the EBus supports more than one address.
Otherwise, false.
The documentation for this struct was generated from the following file:
- C:/lumberyard-root/dev/Code/Framework/AzCore/AzCore/EBus/ BusImpl.h