VR-Forces 4.10 Class Documentation
 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;
20 
26 {
27 private:
31  DtLuaMessageBuilder& operator=(const DtLuaMessageBuilder& other);
32 public:
33  typedef DtAdminContent*(*luaTableToAdminContentFcn)(const luabind::object& messageContents);
34  typedef bool(*adminContentToLuaTableFcn)(const DtAdminContent*, luabind::object& luaTable);
35 
37  virtual ~DtLuaMessageBuilder();
38 
40  virtual void registerAdminContentType(DtAdminContentMessageType type, luaTableToAdminContentFcn toAcFcn, adminContentToLuaTableFcn toTableFcn);
41 
42  virtual DtVrfObjectMessage* createMessageFromContents(const std::string& messageType, const luabind::object& messageContents) const;
45  virtual bool convertMessageToLua(const DtVrfObjectMessage* message, std::string& messageType, luabind::object& messageContents) const;
46 
48  virtual void registerDefaultMessages();
49 
52  virtual DtAdminContentMessageType adminTypeForString(const std::string& typeString) const;
53 
55  static void setInstance(DtLuaMessageBuilder* mb);
57  static const DtLuaMessageBuilder* instance();
58 
60  static DtLuaMessageBuilder* create();
61 
62 protected:
65  std::unordered_map<std::string, adminContentToLuaTableFcn> myAdminContentToLuaTableFunctions;
66  std::unordered_map<std::string, luaTableToAdminContentFcn> myLuaTableToAdminContentFunctions;
67 
69 };
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:65
std::unordered_map< std::string, luaTableToAdminContentFcn > myLuaTableToAdminContentFunctions
Definition: luaMessageBuilder.h:66
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.
Definition: vrfObjectMessage.h:30
DtAdminContent.
Definition: adminContent.h:24
Handles translation of messages from C++ structures into Lua tables and the reverse translation as we...
Definition: luaMessageBuilder.h:25
static DtLuaMessageBuilder * theLuaMessageBuilder
Definition: luaMessageBuilder.h:68

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)