16 #include <nn/pia/clone/clone_Definitions.h>
17 #include <nn/pia/clone/clone_CloneElementBase.h>
54 return m_IsValidValue;
73 void Trace(uint64_t flag)
const;
81 return GetTypeStatic();
84 static Type GetTypeStatic()
88 static bool Receive(CloneElementBase* pElement, IDataPacker* pAckPacker,
const void* cpChunk, uint16_t chunkSize,
Id elementId,
StationIndex src,
StationIndex localStationIndex, uint32_t dispatchCount);
89 static uint32_t GetDataChunkHeaderSize();
92 void ReceiveData(
const void* cpData, uint32_t size,
ClockValue clock);
95 virtual void ClearData();
103 NN_PIA_UNUSED(stationIndex);
107 class UnreliableSendToken :
public CloneElementBase::ISendToken
110 explicit UnreliableSendToken(UnreliableCloneElementBase* pElement)
111 : CloneElementBase::ISendToken(), m_pElement(pElement)
114 virtual Type GetElementType()
const
118 virtual uint32_t GetDestBitmap()
const;
119 virtual uint32_t GetChunkSize()
const;
120 virtual void WriteChunk(
void* pChunkBuffer)
const;
121 virtual CloneElementBase* GetElement()
125 virtual void TraceTokenType()
133 return m_pElement->GetId();
135 uint32_t GetSize()
const
137 return m_pElement->GetSize();
141 return m_pElement->m_Clock;
143 void Serialize(
void* pBuffer)
const
145 m_pElement->Serialize(pBuffer);
149 UnreliableCloneElementBase* m_pElement;
153 Result SetValueCore(
bool* pIsCopyValue);
155 virtual void Serialize(
void* pBuffer)
const = 0;
156 virtual void Deserialize(
const void* cpData) = 0;
157 virtual void ClearValue() = 0;
162 UnreliableSendToken m_SendDataToken;
164 static Definition<UnreliableCloneElementBase> s_Definition;
167 template <
int TEST_ID,
typename Arg>
168 static void Test(
const UnreliableCloneElementBase& obj, Arg* pArg = NULL);
170 NN_PIA_DISALLOW_COPY(UnreliableCloneElementBase);