VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
chatMessageManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2024 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
7 
8 #pragma once
9 
10 #include <vrfGuiCore/vrfGuiCore.h>
11 
12 #include <vlutil/vlString.h>
13 #include <vlutil/vlFilename.h>
14 
17 
18 #include <map>
19 #include <set>
20 
21 #include <boost/signals2.hpp>
22 
23 namespace makVrv
24 {
25  class DtDe;
26 }
27 
28 namespace makVrfEvents
29 {
30  class DtEvent;
31  class DtChatMessageEvent;
32 }
33 
34 class DtScenarioExplorer;
35 
36 namespace makVrf
37 {
38  class DtEventManagerEventInterface;
39 
41  {
42  public:
43  using ChatPtr = std::shared_ptr<makVrfEvents::DtChatMessageEvent>;
44  using Messages = std::vector<ChatPtr>;
45  using Channels = std::map<int, std::set<DtString>>;
46 
47  public:
49  virtual ~DtChatMessageManager() override;
50 
52  static DtChatMessageManager& instance(makVrv::DtDe& de);
53  static void registerInstance(makVrv::DtDe& de, DtChatMessageManager*);
54 
56  virtual void addChannel(int forceType, const DtString&);
57  virtual Channels channels();
58  virtual std::vector<std::pair<int, DtString>> channelsForForce(int);
59  virtual std::vector<std::pair<int, DtString>> channelsForForces(const std::vector<int>&);
60 
61  boost::signals2::signal<void(int, const DtString&)> signal_channelAdded;
62  boost::signals2::signal<void(const makVrfEvents::DtChatMessageEvent&)> signal_chatMessageReceived;
63  boost::signals2::signal<void()> signal_cleared;
64 
65  virtual void chatEventReceived(DtEventManagerEventInterface*);
66 
67  virtual void sendChatMessage(const DtString& userName, const DtString& channel, int force, const DtString& message);
68  virtual void addChatMessage(const makVrfEvents::DtChatMessageEvent&);
69 
70  virtual void clearMessages(int force, const DtString& channel);
71 
72  virtual void clearMessages();
73  virtual void clearChannels();
74 
76  virtual Messages messagesFor(int force, const DtString& channel) const;
77 
78  virtual void loadChannelConfig(const DtFilename& chatConfigFile);
79 
80  virtual void scenarioLoaded(const DtScenarioExplorer& s);
81  virtual void scenarioClosed();
82 
83  protected:
84  DtFilename myDefaultConfigFilename = "defaultChatConfig.mtl";
85  DtFilename myDefaultConfigDirectory = "$(APP_DIR)/settings";
86  DtFilename myDefaultChatConfigUserFilenamePostfix = "_ChatConfig.mtl";
87  DtFilename myDefaultChatConfigUserDirectory = "$(USER_DIR)/chatConfigs";
88 
89  protected:
91 
94 
96 
99  };
100 }
std::shared_ptr< makVrfEvents::DtChatMessageEvent > ChatPtr
Definition: chatMessageManager.h:43
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
boost::signals2::signal< void(int, const DtString &)> signal_channelAdded
Definition: chatMessageManager.h:61
boost::signals2::signal< void(const makVrfEvents::DtChatMessageEvent &)> signal_chatMessageReceived
Definition: chatMessageManager.h:62
class DtScenarioExplorer:
Definition: scenarioExplorer.h:26
Definition: eventManagerEventInterface.h:16
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
Channels myChannels
Definition: chatMessageManager.h:92
DtFilename myCurrentChatConfigFile
Definition: chatMessageManager.h:98
std::map< int, std::set< DtString >> Channels
Definition: chatMessageManager.h:45
Contains makVrv::DtVirtualBaseClass class.
DtFilename myDefaultChatConfigFile
Definition: chatMessageManager.h:97
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
makVrv::DtDe & myDe
Definition: chatMessageManager.h:90
Definition: chatMessageManager.h:40
Base class to provide boost signal/slot management.
When sending, force type of -1 means to send to all forces and an empty channel string means to send ...
Definition: chatMessageEvent.h:14
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
std::vector< ChatPtr > Messages
Definition: chatMessageManager.h:44
makVrv::DtSignalConnectionManager myConnections
Definition: chatMessageManager.h:95
boost::signals2::signal< void()> signal_cleared
Definition: chatMessageManager.h:63
Messages myMessages
Definition: chatMessageManager.h:93

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)