17 #include <pia/clone/clone_definitions.h> 18 #include <pia/clone/clone_CloneElementBase.h> 76 void Trace(u64 flag)
const;
86 return m_SetterStationIndex;
96 return m_PreserverStationIndex;
104 u32 GetDestBitmap()
const 113 virtual u16 GetType()
const 115 return GetTypeStatic();
118 static u16 GetTypeStatic()
120 return TYPE_RELIABLE;
123 static size_t GetDataChunkHeaderSize();
133 virtual void ClearData();
139 virtual void RequestInitialData();
142 class ReliableSendToken :
public CloneElementBase::ResendableSendToken
150 virtual TokenType GetTokenType()
const = 0;
154 class ReliableRequestToken :
public ReliableSendToken
158 : ReliableSendToken(), m_pElement(pElement)
161 virtual Type GetElementType()
const 163 return TYPE_RELIABLE;
165 virtual u32 GetDestBitmap()
const 167 return m_pElement->m_DestBitmap;
169 virtual TokenType GetTokenType()
const 171 return TOKEN_REQUEST;
173 virtual size_t GetChunkSize()
const;
174 virtual void WriteChunk(
void* pChunkBuffer)
const;
183 return m_pElement->GetId();
191 class ReliableDataToken :
public ReliableSendToken
195 : ReliableSendToken(), m_pElement(pElement)
198 virtual Type GetElementType()
const 200 return TYPE_RELIABLE;
202 virtual u32 GetDestBitmap()
const 204 return m_pElement->m_DestBitmap;
206 virtual TokenType GetTokenType()
const 210 virtual size_t GetChunkSize()
const;
211 virtual void WriteChunk(
void* pChunkBuffer)
const;
216 virtual bool IsUnicast()
const 222 size_t GetSize()
const 224 return m_pElement->GetSize();
228 return m_pElement->GetId();
232 return m_pElement->m_Clock;
236 return m_pElement->m_SetterStationIndex;
238 void Serialize(
void* pBuffer)
const 240 m_pElement->Serialize(pBuffer);
248 class ReliableInitialToken :
public CloneElementBase::ISendToken
252 : ISendToken(), m_pElement(pElement)
255 virtual Type GetElementType()
const 257 return TYPE_RELIABLE;
259 virtual u32 GetDestBitmap()
const 263 virtual size_t GetChunkSize()
const;
264 virtual void WriteChunk(
void* pChunkBuffer)
const;
271 size_t GetSize()
const 273 return m_pElement->GetSize();
277 PIA_ASSERT(m_pElement->IsValidValue());
282 return m_pElement->GetId();
286 return m_pElement->m_Clock;
290 return m_pElement->m_SetterStationIndex;
292 void Serialize(
void* pBuffer)
const 294 m_pElement->Serialize(pBuffer);
300 m_DestBitmap |= (0x1 << stationId);
304 m_DestBitmap &= (0x1 << stationId);
318 nn::Result SetValueCore();
320 virtual void Serialize(
void* pBuffer)
const = 0;
321 virtual void Deserialize(
const void* cpData) = 0;
322 virtual void ClearValue() = 0;
329 ReliableRequestToken m_RequestToken;
330 ReliableDataToken m_DataToken;
331 ReliableInitialToken m_InitialToken;
333 static Definition<ReliableCloneElementBase> s_Definition;
336 template <
int TEST_ID,
typename Arg>
This is the base class for managing data that is sent and received. .
Definition: clone_CloneElementBase.h:40
virtual ~ReliableCloneElementBase()
Destroys the object (destructor).
u32 ClockValue
Defines a type that holds a clock value.
Definition: clone_definitions.h:44
StationIndex
Enumerates StationIndex values.
Definition: platformCtr.h:44
ID indicating a station that is not present in the session.
Definition: platformCtr.h:59
void Trace(u64 flag) const
Prints information that is useful for debugging.
bool IsValidValue() const
Gets whether a valid value can be obtained using GetValue.
Definition: clone_ReliableCloneElementBase.h:55
This is the base class for managing the sending and receiving of reliable data.
Definition: clone_ReliableCloneElementBase.h:36
ClockValue GetClock() const
Gets the clock for when the value was set.
Definition: clone_ReliableCloneElementBase.h:65
u16 Id
Specifies the type of the ID for identifying clone elements.
Definition: clone_CloneElementBase.h:59
Id GetId() const
Gets the ID.
Definition: clone_CloneElementBase.h:67