VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
objectConsoleMessageHandler.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 
14 #include <vrfGuiCore/vrfGuiCore.h>
16 #include <vrvCore/DtUniqueID.h>
18 #include <vrvUtil/DtUnicode.h>
19 #include <vlutil/vlPrint.h>
21 #include <vrfutil/rwUUID.h>
23 
24 #include <map>
25 #include <vector>
26 
27 namespace makVrv
28 {
29  class DtDe;
30  class DtSimObjectEntry;
31 }
32 
33 class DtEntityIdentifier;
34 class DtString;
35 class DtSimMessage;
36 
37 namespace makVrf
38 {
39  static DtNotifyLevelType DtNlQuestion = DtNotifyLevelType(DtNlDebug + 10);
40 
43 
45  {
46  public:
47  typedef std::vector<std::pair<makVrv::DtUnicode, int> > DtConsoleMessageList;
48 
50  virtual ~DtObjectConsoleMessageHandler() override;
51 
53  static DtObjectConsoleMessageHandler& instance(makVrv::DtDe& de);
54  static void registerInstance(makVrv::DtDe& de, DtObjectConsoleMessageHandler*);
55 
56  virtual void setEnabled(bool);
57  bool enabled() const
58  {
59  return myEnabled;
60  }
61 
62  boost::signals2::signal<void (const DtUUID&, int notifyLevel, const makVrv::DtUnicode&)> signal_consoleMessageReceived;
63  boost::signals2::signal<void (int)> signal_messageQueueSizeChanged;
64  boost::signals2::signal<void (makVrv::DtElementID, int, int)> signal_questionStatusChanged;
65 
66  virtual void setMessageQueueSize(int);
67  int messageQueueSize() const
68  {
69  return myMessageQueueSize;
70  }
71 
73  virtual bool questionFor(makVrv::DtElementID id, int questionId, DtIfAskUserQuestion&) const;
74 
76  virtual std::vector<int> pendingQuestionsFor(makVrv::DtElementID) const;
77 
79  virtual bool hasOutstandingQuestions(makVrv::DtElementID) const;
80 
82  virtual bool hasAwaitingMessage(makVrv::DtElementID id);
83 
85  virtual DtConsoleMessageList messagesFor(const DtUUID& entityId) const;
86 
91  virtual void setReceivingMessagesFor(makVrv::DtElementID, bool);
92 
94  virtual bool receivingMessagesFor(makVrv::DtElementID) const;
95 
97  virtual void clearAllMessages(const DtUUID& entityId);
98 
99  virtual void userQuestionAnswered(makVrv::DtElementID id, int questionId);
100 
101  protected:
102  virtual void processObjectConsoleMessageCallback(DtNetworkMessageInterface*);
103  virtual void slot_simObjectEntryAboutToBeRemoved(DtSimObjectReference state);
104 
105  virtual void processUserQuestion(DtSimMessage*);
106  virtual bool processQuestion(const DtIfAskUserQuestion&);
107  virtual void processUserQuestionOperation(DtSimMessage*);
108 
110  virtual void messagesToResolve();
111  virtual void questionsToResolve();
112 
113  virtual makVrv::DtUnicode translateComment(DtCommentInteractionInterface* comment) const;
114  virtual void messagesToResolve(makVrv::DtElementID);
115  virtual void checkIfNeedsToNotifyForNewMessage(makVrv::DtElementID, int notifyLevel);
116 
117  protected:
118  typedef std::map<DtUUID, DtConsoleMessageList> ConsoleMessageMap;
119 
121  bool myEnabled;
124 
125  std::map<makVrv::DtElementID, int> myReceivingMessagesFor;
126 
128  std::map<DtUUID, int> myHasAwaitingMessages;
129  std::map<std::string, DtIfAskUserQuestion> myHasAwaitingQuestions;
130 
131  std::map<makVrv::DtElementID, int> mySetAwaiting;
132 
133  typedef std::map<DtUUID, std::vector<DtIfAskUserQuestion> > PendingQuestions;
135 
137  };
138 }
UUID is a unique ID wrapper class.
Definition: uuid.h:59
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
bool myEnabled
Definition: objectConsoleMessageHandler.h:121
Definition: networkMessageInterface.h:22
std::vector< std::pair< makVrv::DtUnicode, int > > DtConsoleMessageList
Definition: objectConsoleMessageHandler.h:47
Definition: objectConsoleMessageHandler.h:44
static DtNotifyLevelType DtNlQuestion
Definition: objectConsoleMessageHandler.h:39
std::map< makVrv::DtElementID, int > mySetAwaiting
Definition: objectConsoleMessageHandler.h:131
bool enabled() const
Definition: objectConsoleMessageHandler.h:57
boost::signals2::signal< void(makVrv::DtElementID, int, int)> signal_questionStatusChanged
Definition: objectConsoleMessageHandler.h:64
Contains the DtUUID class declaration.
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
std::map< DtUUID, int > myHasAwaitingMessages
Messages are awaiting for an object that does not have an element id yet.
Definition: objectConsoleMessageHandler.h:128
Definition: commentInteractionInterface.h:23
std::map< std::string, DtIfAskUserQuestion > myHasAwaitingQuestions
Definition: objectConsoleMessageHandler.h:129
Contains makVrv::DtVirtualBaseClass class.
File: simMsg.h.
Definition: simMessage.h:35
int messageQueueSize() const
Definition: objectConsoleMessageHandler.h:67
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
makVrv::DtDe & myDe
Definition: objectConsoleMessageHandler.h:120
int myMessageQueueSize
Definition: objectConsoleMessageHandler.h:122
std::map< DtUUID, std::vector< DtIfAskUserQuestion > > PendingQuestions
Definition: objectConsoleMessageHandler.h:133
std::map< DtUUID, DtConsoleMessageList > ConsoleMessageMap
Definition: objectConsoleMessageHandler.h:118
ConsoleMessageMap myConsoleMessageMap
Definition: objectConsoleMessageHandler.h:123
boost::signals2::signal< void(const DtUUID &, int notifyLevel, const makVrv::DtUnicode &)> signal_consoleMessageReceived
Definition: objectConsoleMessageHandler.h:62
Base class to provide boost signal/slot management.
Contains makVrv::DtUniqueID type.
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
PendingQuestions myPendingQuestions
Definition: objectConsoleMessageHandler.h:134
DtIfAskUserQuestion class will allow the back-end to send a message to the front end to ask the user ...
Definition: ifAskUserQuestion.h:23
makVrv::DtSignalConnectionManager myConnections
Definition: objectConsoleMessageHandler.h:136
boost::signals2::signal< void(int)> signal_messageQueueSizeChanged
Definition: objectConsoleMessageHandler.h:63
std::map< makVrv::DtElementID, int > myReceivingMessagesFor
Definition: objectConsoleMessageHandler.h:125

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)