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 (ScriptInterface &scriptInterface)
 
 CSimulationMessage (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

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::CSimulationMessage ( ScriptInterface scriptInterface)
CSimulationMessage::CSimulationMessage ( ScriptInterface scriptInterface,
u32  client,
i32  player,
u32  turn,
JS::HandleValue  data 
)
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

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 occured

Reimplemented from CNetMessage.

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.

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.

CStr CSimulationMessage::ToString ( ) const
virtual

Returns a string representation for the message.

Returns
The message as a string

Reimplemented from CNetMessage.

Member Data Documentation

u32 CSimulationMessage::m_Client
JS::PersistentRooted<JS::Value> CSimulationMessage::m_Data
i32 CSimulationMessage::m_Player
ScriptInterface* CSimulationMessage::m_ScriptInterface
private
u32 CSimulationMessage::m_Turn

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