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>
15 #include <vrvCore/DtUniqueID.h>
17 #include <vrvUtil/DtUnicode.h>
18 #include <vlutil/vlPrint.h>
20 #include <vrfutil/rwUUID.h>
22 #include <vrvCore/DtStateView.h>
23 #include <vrvCore/DtEntityState.h>
24 
25 #include <map>
26 #include <vector>
27 
28 namespace makVrv
29 {
30  class DtDe;
31  class DtSimObjectEntry;
32 }
33 
34 class DtEntityIdentifier;
35 class DtString;
36 class DtSimMessage;
37 
38 namespace makVrf
39 {
40  static DtNotifyLevelType DtNlQuestion = DtNotifyLevelType(DtNlDebug + 10);
41 
44 
46  {
47  public:
48  typedef std::vector<std::pair<makVrv::DtUnicode, int> > DtConsoleMessageList;
49 
52 
54  static DtObjectConsoleMessageHandler& instance(makVrv::DtDe& de);
55  static void registerInstance(makVrv::DtDe& de, DtObjectConsoleMessageHandler*);
56 
57  virtual void setEnabled(bool);
58  bool enabled() const
59  {
60  return myEnabled;
61  }
62 
63  boost::signals2::signal<void (const DtUUID&, int notifyLevel, const makVrv::DtUnicode&)> signal_consoleMessageReceived;
64  boost::signals2::signal<void (int)> signal_messageQueueSizeChanged;
65  boost::signals2::signal<void (makVrv::DtElementID, int, int)> signal_questionStatusChanged;
66 
67  virtual void setMessageQueueSize(int);
68  int messageQueueSize() const
69  {
70  return myMessageQueueSize;
71  }
72 
74  virtual bool questionFor(makVrv::DtElementID id, int questionId, DtIfAskUserQuestion&) const;
75 
77  virtual std::vector<int> pendingQuestionsFor(makVrv::DtElementID) const;
78 
80  virtual bool hasOutstandingQuestions(makVrv::DtElementID) const;
81 
83  virtual bool hasAwaitingMessage(makVrv::DtElementID id);
84 
86  virtual DtConsoleMessageList messagesFor(const DtUUID& entityId) const;
87 
92  virtual void setReceivingMessagesFor(makVrv::DtElementID, bool);
93 
95  virtual bool receivingMessagesFor(makVrv::DtElementID) const;
96 
98  virtual void clearAllMessages(const DtUUID& entityId);
99 
100  virtual void userQuestionAnswered(makVrv::DtElementID id, int questionId);
101 
102  protected:
103  virtual void processObjectConsoleMessageCallback(DtNetworkMessageInterface*);
104  virtual void slot_simObjectEntryAboutToBeRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* state);
105 
106  virtual void processUserQuestion(DtSimMessage*);
107  virtual bool processQuestion(const DtIfAskUserQuestion&);
108  virtual void processUserQuestionOperation(DtSimMessage*);
109 
111  virtual void messagesToResolve();
112  virtual void questionsToResolve();
113 
114  virtual makVrv::DtUnicode translateComment(DtCommentInteractionInterface* comment) const;
115  virtual void messagesToResolve(makVrv::DtElementID);
116  virtual void checkIfNeedsToNotifyForNewMessage(makVrv::DtElementID, int notifyLevel);
117 
118  protected:
119  typedef std::map<DtUUID, DtConsoleMessageList> ConsoleMessageMap;
120 
122  bool myEnabled;
125 
126  std::map<makVrv::DtElementID, int> myReceivingMessagesFor;
127 
129  std::map<DtUUID, int> myHasAwaitingMessages;
130  std::map<std::string, DtIfAskUserQuestion> myHasAwaitingQuestions;
131 
132  std::map<makVrv::DtElementID, int> mySetAwaiting;
133 
134  typedef std::map<DtUUID, std::vector<DtIfAskUserQuestion> > PendingQuestions;
136 
138  };
139 }
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:122
Definition: networkMessageInterface.h:28
std::vector< std::pair< makVrv::DtUnicode, int > > DtConsoleMessageList
Definition: objectConsoleMessageHandler.h:48
Definition: objectConsoleMessageHandler.h:45
static DtNotifyLevelType DtNlQuestion
Definition: objectConsoleMessageHandler.h:40
std::map< makVrv::DtElementID, int > mySetAwaiting
Definition: objectConsoleMessageHandler.h:132
Contains makVrv::DtStateView class.
bool enabled() const
Definition: objectConsoleMessageHandler.h:58
boost::signals2::signal< void(makVrv::DtElementID, int, int)> signal_questionStatusChanged
Definition: objectConsoleMessageHandler.h:65
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:129
Definition: commentInteractionInterface.h:23
std::map< std::string, DtIfAskUserQuestion > myHasAwaitingQuestions
Definition: objectConsoleMessageHandler.h:130
Contains makVrv::DtVirtualBaseClass class.
File: simMsg.h.
Definition: simMessage.h:35
int messageQueueSize() const
Definition: objectConsoleMessageHandler.h:68
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
makVrv::DtDe & myDe
Definition: objectConsoleMessageHandler.h:121
Contains makVrv::DtVrlinkSimulatedEntityState class.
int myMessageQueueSize
Definition: objectConsoleMessageHandler.h:123
std::map< DtUUID, std::vector< DtIfAskUserQuestion > > PendingQuestions
Definition: objectConsoleMessageHandler.h:134
std::map< DtUUID, DtConsoleMessageList > ConsoleMessageMap
Definition: objectConsoleMessageHandler.h:119
ConsoleMessageMap myConsoleMessageMap
Definition: objectConsoleMessageHandler.h:124
boost::signals2::signal< void(const DtUUID &, int notifyLevel, const makVrv::DtUnicode &)> signal_consoleMessageReceived
Definition: objectConsoleMessageHandler.h:63
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:72
PendingQuestions myPendingQuestions
Definition: objectConsoleMessageHandler.h:135
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:137
boost::signals2::signal< void(int)> signal_messageQueueSizeChanged
Definition: objectConsoleMessageHandler.h:64
std::map< makVrv::DtElementID, int > myReceivingMessagesFor
Definition: objectConsoleMessageHandler.h:126

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)