VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
luaMessageBuilder.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 
10 #pragma once
11 
12 
13 #include <vrfLua/vrfLuaDefines.h>
14 #include <luabind/luabind.hpp>
15 #include <unordered_map>
17 
18 class DtAdminContent;
19 class DtVrfObjectMessage;
21 
27 {
28 private:
32  DtLuaMessageBuilder& operator=(const DtLuaMessageBuilder& other);
33 public:
34  typedef DtAdminContent*(*luaTableToAdminContentFcn)(const luabind::object& messageContents, DtSimulationServices*);
35  typedef bool(*adminContentToLuaTableFcn)(const DtAdminContent*, luabind::object& luaTable, DtSimulationServices*);
36 
38  virtual ~DtLuaMessageBuilder();
39 
41  virtual void registerAdminContentType(DtAdminContentMessageType type, luaTableToAdminContentFcn toAcFcn, adminContentToLuaTableFcn toTableFcn);
42 
43  virtual DtVrfObjectMessage* createMessageFromContents(const std::string& messageType, const luabind::object& messageContents, DtSimulationServices* s) const;
46  virtual bool convertMessageToLua(const DtVrfObjectMessage* message, std::string& messageType, luabind::object& messageContents, DtSimulationServices* s) const;
47 
49  virtual void registerDefaultMessages();
50 
53  virtual DtAdminContentMessageType adminTypeForString(const std::string& typeString) const;
54 
56  static void setInstance(DtLuaMessageBuilder* mb);
58  static const DtLuaMessageBuilder* instance();
59 
61  static DtLuaMessageBuilder* create();
62 
63 protected:
66  std::unordered_map<std::string, adminContentToLuaTableFcn> myAdminContentToLuaTableFunctions;
67  std::unordered_map<std::string, luaTableToAdminContentFcn> myLuaTableToAdminContentFunctions;
68 
70 };
std::unordered_map< std::string, adminContentToLuaTableFcn > myAdminContentToLuaTableFunctions
Map keyed by admin content type that contains functions for creating the admin content from a lua tab...
Definition: luaMessageBuilder.h:66
std::unordered_map< std::string, luaTableToAdminContentFcn > myLuaTableToAdminContentFunctions
Definition: luaMessageBuilder.h:67
Definition: vrfObjectMessageTypeTemplate.h:24
#define DT_DLL_vrfLua
This file is used to determine how to build.
Definition: vrfLuaDefines.h:25
The base class for all messages to/from a specific DtVrfObject. Various subclasses of this class will...
Definition: vrfObjectMessage.h:30
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:96
DtAdminContent.
Definition: adminContent.h:23
Handles translation of messages from C++ structures into Lua tables and the reverse translation as we...
Definition: luaMessageBuilder.h:26
static DtLuaMessageBuilder * theLuaMessageBuilder
Definition: luaMessageBuilder.h:69

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)