16 #include <nn/pia/clone/clone_Definitions.h>
17 #include <nn/pia/clone/clone_EventCloneElementBase.h>
18 #include <nn/pia/clone/clone_SerializePolicyDefinition.h>
34 template <
typename Value_, u
int32_t BufferSize>
91 return (GetHandlingEventToken() != NULL) ? &(
static_cast<const EventToken*
>(GetHandlingEventToken())->
GetValue()) : NULL;
101 return (GetHandlingEventToken() != NULL) ? GetHandlingEventToken()->GetClock() :
InvalidClock;
111 return (GetHandlingEventToken() != NULL) ? GetHandlingEventToken()->GetSetterStationIndex() :
StationIndex_Invalid;
121 return (GetHandlingEventToken() != NULL) ? GetHandlingEventToken()->GetIndex() : 0;
125 virtual uint32_t GetSize()
const
132 class EventToken :
public EventTokenBase
136 : EventTokenBase(), m_Value()
148 virtual void Serialize(
void* pBuffer)
const
153 virtual void Deserialize(
const void* cpBuffer)
163 class EventTokenBuffer :
public EventTokenBufferBase
166 explicit EventTokenBuffer(EventCloneElementBase* pElement);
169 virtual EventTokenBase* At(
int idx)
171 return &m_EventTokenArray[idx];
173 virtual const EventTokenBase* At(
int idx)
const
175 return &m_EventTokenArray[idx];
179 EventToken m_EventTokenArray[BufferSize];
183 EventTokenBuffer m_EventTokenBuffer;
189 NN_PIA_PRAGMA_PUSH_WARNINGS
190 NN_PIA_DISABLE_WARNING_WIN_4355
192 template <
typename Value, u
int32_t BufferSize>
194 : EventCloneElementBase(&m_EventTokenBuffer),
195 m_EventTokenBuffer(this)
197 PIA_COMPILE_ASSERT(BufferSize >= BufferSizeMin && BufferSize <= BufferSizeMax);
200 NN_PIA_PRAGMA_POP_WARNINGS
203 template <
typename Value, u
int32_t BufferSize>
206 EventTokenBase* pTokenBase;
207 Result r = SetValueCore(&pTokenBase);
208 if (r.IsSuccess() && pTokenBase != NULL)
210 EventToken* pToken =
static_cast<EventToken*
>(pTokenBase);
211 pToken->SetValue(value);
217 template <
typename Value, u
int32_t BufferSize>
218 EventCloneElement<Value, BufferSize>::EventTokenBuffer::EventTokenBuffer(EventCloneElementBase* pElement)
219 : EventTokenBufferBase(BufferSize)
221 for (uint32_t i = 0; i < BufferSize; ++i)
223 m_EventTokenArray[i].Init(pElement);
224 m_EventTokenArray[i].SetState(EventTokenBase::State_EventTokenEmpty);
225 m_EventTokenArray[i].SetIndex(static_cast<Index>(i));