35#ifndef AAX_CPACKETDISPATCHER_H
36#define AAX_CPACKETDISPATCHER_H
60 template<
typename DataType>
63 mDataSize =
sizeof(DataType);
64 void * data = mPacketData.Get(mDataSize);
65 return reinterpret_cast<DataType*
> (data);
68 void SetDirty(
bool iDirty) { mDirty = iDirty; };
72 uint32_t
GetSize()
const {
return mDataSize; }
85 const void* Get()
const;
86 void* Get(
size_t newSize)
const;
95AAX_CPacket::GetPtr<const void>()
97 return mPacketData.Get();
112template<
class TWorker>
164 typedef std::map<AAX_CFieldIndex, AAX_CPacket*> PacketsHolder;
165 typedef std::multimap<std::string, std::pair<AAX_CPacket*, AAX_IPacketHandler*> > PacketsHandlersMap;
175 template <
class TWorker,
typename Func>
177 TWorker* iPt2Object, Func infPt)
196 PacketsHolder mPacketsHolder;
197 PacketsHandlersMap mPacketsHandlers;
@ AAX_ERROR_NULL_OBJECT
Definition: AAX_Errors.h:54
Various utility definitions for AAX.
const char * AAX_CParamID
Parameter identifier.
Definition: AAX.h:362
int32_t AAX_Result
Definition: AAX.h:347
AAX_CIndex AAX_CFieldIndex
Not used by AAX plug-ins (except in AAX_FIELD_INDEX macro)
Definition: AAX.h:359
Interface for the AAX host's view of a single instance of an effect.
Mutex with try lock functionality.
Definition: AAX_CMutex.h:40
Container for packet-related data.
Definition: AAX_CPacketDispatcher.h:55
bool IsDirty() const
Definition: AAX_CPacketDispatcher.h:69
void SetDirty(bool iDirty)
Definition: AAX_CPacketDispatcher.h:68
DataType * GetPtr()
Definition: AAX_CPacketDispatcher.h:61
uint32_t GetSize() const
Definition: AAX_CPacketDispatcher.h:72
~AAX_CPacket()
Definition: AAX_CPacketDispatcher.h:58
AAX_CFieldIndex GetID() const
Definition: AAX_CPacketDispatcher.h:71
AAX_CPacket(AAX_CFieldIndex inFieldIndex)
Definition: AAX_CPacketDispatcher.h:57
Callback container used by AAX_CPacketDispatcher.
Definition: AAX_CPacketDispatcher.h:104
virtual AAX_IPacketHandler * Clone() const =0
virtual AAX_Result Call(AAX_CParamID inParamID, AAX_CPacket &ioPacket) const =0
virtual ~AAX_IPacketHandler()
Definition: AAX_CPacketDispatcher.h:105
Callback container used by AAX_CPacketDispatcher.
Definition: AAX_CPacketDispatcher.h:114
AAX_Result Call(AAX_CParamID inParamID, AAX_CPacket &ioPacket) const
Definition: AAX_CPacketDispatcher.h:130
AAX_IPacketHandler * Clone() const
Definition: AAX_CPacketDispatcher.h:125
AAX_CPacketHandler(TWorker *iPt2Object, fPt2Fn infPt)
Definition: AAX_CPacketDispatcher.h:119
fPt2Fn fpt
Definition: AAX_CPacketDispatcher.h:142
TWorker * pt2Object
Definition: AAX_CPacketDispatcher.h:141
fPt2FnEx fptEx
Definition: AAX_CPacketDispatcher.h:143
AAX_CPacketHandler(TWorker *iPt2Object, fPt2FnEx infPt)
Definition: AAX_CPacketDispatcher.h:122
Helper class for managing AAX packet posting.
Definition: AAX_CPacketDispatcher.h:163
AAX_Result RegisterPacket(AAX_CParamID paramID, AAX_CFieldIndex portID, const AAX_IPacketHandler *iHandler)
AAX_Result SetDirty(AAX_CParamID paramID, bool iDirty=true)
AAX_Result RegisterPacket(AAX_CParamID paramID, AAX_CFieldIndex portID)
Definition: AAX_CPacketDispatcher.h:183
void Initialize(AAX_IController *iPlugIn, AAX_IEffectParameters *iEffectParameters)
AAX_Result RegisterPacket(AAX_CParamID paramID, AAX_CFieldIndex portID, TWorker *iPt2Object, Func infPt)
Definition: AAX_CPacketDispatcher.h:176
AAX_Result GenerateSingleValuePacket(AAX_CParamID iParam, AAX_CPacket &ioPacket)
Interface for the AAX host's view of a single instance of an effect. Used by both clients of the AAX ...
Definition: AAX_IController.h:55
The interface for an AAX Plug-in's data model.
Definition: AAX_IEffectParameters.h:93