Pyrogenesis  trunk
Public Member Functions | Public Attributes | Private Attributes | List of all members
CSimulationMessage Class Reference

Special message type for simulation commands. More...

#include <NetMessage.h>

Inheritance diagram for CSimulationMessage:
Inheritance graph
[legend]
Collaboration diagram for CSimulationMessage:
Collaboration graph
[legend]

Public Member Functions

 CSimulationMessage (const ScriptInterface &scriptInterface)
 
 CSimulationMessage (const ScriptInterface &scriptInterface, u32 client, i32 player, u32 turn, JS::HandleValue data)
 
 CSimulationMessage (const CSimulationMessage &orig)
 The compiler can't create a copy constructor because of the PersistentRooted member, so we have to write it manually. More...
 
virtual u8Serialize (u8 *pBuffer) const
 Serialize the message into the specified buffer parameter. More...
 
virtual const u8Deserialize (const u8 *pStart, const u8 *pEnd)
 Deserializes the message from the specified buffer. More...
 
virtual size_t GetSerializedLength () const
 Retrieves the size in bytes of the serialized message. More...
 
virtual CStr ToString () const
 Returns a string representation for the message. More...
 
- Public Member Functions inherited from CNetMessage
 CNetMessage ()
 
 CNetMessage (NetMessageType type)
 
virtual ~CNetMessage ()
 
NetMessageType GetType () const
 Retrieves the message type. More...
 
- Public Member Functions inherited from ISerializable
virtual ~ISerializable ()
 

Public Attributes

u32 m_Client
 
i32 m_Player
 
u32 m_Turn
 
JS::PersistentRooted< JS::Value > m_Data
 

Private Attributes

const ScriptInterfacem_ScriptInterface
 

Detailed Description

Special message type for simulation commands.

These commands are exposed as arbitrary JS objects, associated with a specific player.

Constructor & Destructor Documentation

◆ CSimulationMessage() [1/3]

CSimulationMessage::CSimulationMessage ( const ScriptInterface scriptInterface)

◆ CSimulationMessage() [2/3]

CSimulationMessage::CSimulationMessage ( const ScriptInterface scriptInterface,
u32  client,
i32  player,
u32  turn,
JS::HandleValue  data 
)

◆ CSimulationMessage() [3/3]

CSimulationMessage::CSimulationMessage ( const CSimulationMessage orig)

The compiler can't create a copy constructor because of the PersistentRooted member, so we have to write it manually.

NOTE: It doesn't clone the m_Data member and the copy will reference the same JS::Value!

Member Function Documentation

◆ Deserialize()

const u8 * CSimulationMessage::Deserialize ( const u8 pStart,
const u8 pEnd 
)
virtual

Deserializes the message from the specified buffer.

Parameters
pStartMessage start within the serialized buffer
pEndMessage end within the serialized buffer
Returns
The position in the buffer right after the message or NULL if an error occurred

Reimplemented from CNetMessage.

◆ GetSerializedLength()

size_t CSimulationMessage::GetSerializedLength ( ) const
virtual

Retrieves the size in bytes of the serialized message.

Before calling Serialize, the memory size for the buffer where to serialize the message object can be found by calling this method.

Returns
The size of serialized message

Reimplemented from CNetMessage.

◆ Serialize()

u8 * CSimulationMessage::Serialize ( u8 pBuffer) const
virtual

Serialize the message into the specified buffer parameter.

The size required by the buffer parameter can be found by a call to GetSerializedLength method. The information contained within the message must be serialized before the message is sent. By default only the message type and its size are serialized in the buffer parameter.

Parameters
pBufferBuffer where to serialize the message
Returns
The position in the buffer right after the serialized message

Reimplemented from CNetMessage.

◆ ToString()

CStr CSimulationMessage::ToString ( ) const
virtual

Returns a string representation for the message.

Returns
The message as a string

Reimplemented from CNetMessage.

Member Data Documentation

◆ m_Client

u32 CSimulationMessage::m_Client

◆ m_Data

JS::PersistentRooted<JS::Value> CSimulationMessage::m_Data

◆ m_Player

i32 CSimulationMessage::m_Player

◆ m_ScriptInterface

const ScriptInterface& CSimulationMessage::m_ScriptInterface
private

◆ m_Turn

u32 CSimulationMessage::m_Turn

The documentation for this class was generated from the following files: