VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions
DtLuaMessageBuilder Class Reference

Handles translation of messages from C++ structures into Lua tables and the reverse translation as well. Provides interface for Lua scripts to register interest in various messages and send messages.

Public Types

typedef DtAdminContent *(* luaTableToAdminContentFcn )(const luabind::object &messageContents, DtSimulationServices *)
 
typedef bool(* adminContentToLuaTableFcn )(const DtAdminContent *, luabind::object &luaTable, DtSimulationServices *)
 

Public Member Functions

 DtLuaMessageBuilder ()
 
virtual ~DtLuaMessageBuilder ()
 
virtual void registerAdminContentType (DtAdminContentMessageType type, luaTableToAdminContentFcn toAcFcn, adminContentToLuaTableFcn toTableFcn)
 
virtual DtVrfObjectMessagecreateMessageFromContents (const std::string &messageType, const luabind::object &messageContents, DtSimulationServices *s) const
 
virtual bool convertMessageToLua (const DtVrfObjectMessage *message, std::string &messageType, luabind::object &messageContents, DtSimulationServices *s) const
 
virtual void registerDefaultMessages ()
 
virtual DtAdminContentMessageType adminTypeForString (const std::string &typeString) const
 

Static Public Member Functions

static void setInstance (DtLuaMessageBuilder *mb)
 
static const DtLuaMessageBuilderinstance ()
 
static DtLuaMessageBuildercreate ()
 

Protected Attributes

std::unordered_map
< std::string,
adminContentToLuaTableFcn
myAdminContentToLuaTableFunctions
 
std::unordered_map
< std::string,
luaTableToAdminContentFcn
myLuaTableToAdminContentFunctions
 

Static Protected Attributes

static DtLuaMessageBuildertheLuaMessageBuilder
 

Private Member Functions

 DtLuaMessageBuilder (const DtLuaMessageBuilder &other)
 
DtLuaMessageBuilderoperator= (const DtLuaMessageBuilder &other)
 

Member Typedef Documentation

typedef DtAdminContent*(* DtLuaMessageBuilder::luaTableToAdminContentFcn)(const luabind::object &messageContents, DtSimulationServices *)
typedef bool(* DtLuaMessageBuilder::adminContentToLuaTableFcn)(const DtAdminContent *, luabind::object &luaTable, DtSimulationServices *)

Constructor & Destructor Documentation

DtLuaMessageBuilder::DtLuaMessageBuilder ( const DtLuaMessageBuilder other)
private

Not implemented.

DtLuaMessageBuilder::DtLuaMessageBuilder ( )
virtual DtLuaMessageBuilder::~DtLuaMessageBuilder ( )
virtual

Member Function Documentation

DtLuaMessageBuilder& DtLuaMessageBuilder::operator= ( const DtLuaMessageBuilder other)
private

Not implemented.

virtual void DtLuaMessageBuilder::registerAdminContentType ( DtAdminContentMessageType  type,
luaTableToAdminContentFcn  toAcFcn,
adminContentToLuaTableFcn  toTableFcn 
)
virtual

Adds a new admin content type to the system with the functions needed to convert it to/from a lua table.

virtual DtVrfObjectMessage* DtLuaMessageBuilder::createMessageFromContents ( const std::string &  messageType,
const luabind::object &  messageContents,
DtSimulationServices s 
) const
virtual
virtual bool DtLuaMessageBuilder::convertMessageToLua ( const DtVrfObjectMessage message,
std::string &  messageType,
luabind::object &  messageContents,
DtSimulationServices s 
) const
virtual

Fills in messageType and messageContents based on message for any message type that is registered with the builder.

Returns
True if successful.
virtual void DtLuaMessageBuilder::registerDefaultMessages ( )
virtual

Registers the the default VRF message builder functions.

virtual DtAdminContentMessageType DtLuaMessageBuilder::adminTypeForString ( const std::string &  typeString) const
virtual

If provided string is registered as an adminContent type, this returns the equivalent admin content type. If it is not registered, the DtAdminContentMessageType is returned.

static void DtLuaMessageBuilder::setInstance ( DtLuaMessageBuilder mb)
static

Sets the global instance of the message builder to the provided pointer.

static const DtLuaMessageBuilder* DtLuaMessageBuilder::instance ( )
static

Returns the global instance.

static DtLuaMessageBuilder* DtLuaMessageBuilder::create ( )
static

Creates instance and registers default messages.

Member Data Documentation

std::unordered_map<std::string, adminContentToLuaTableFcn> DtLuaMessageBuilder::myAdminContentToLuaTableFunctions
protected

Map keyed by admin content type that contains functions for creating the admin content from a lua table of contents.

std::unordered_map<std::string, luaTableToAdminContentFcn> DtLuaMessageBuilder::myLuaTableToAdminContentFunctions
protected
DtLuaMessageBuilder* DtLuaMessageBuilder::theLuaMessageBuilder
staticprotected

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

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)