VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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 #include <vrfGuiCore/vrfGuiCore.h>
14 #include <vrvCore/DtUniqueID.h>
16 #include <vrvUtil/DtUnicode.h>
17 #include <vlutil/vlPrint.h>
19 
20 #include <map>
21 #include <vector>
22 #include <boost/signal.hpp>
23 
24 namespace makVrv
25 {
26  class DtDe;
27  class DtSimObjectEntry;
28 }
29 
30 class DtEntityIdentifier;
31 class DtString;
32 class DtSimMessage;
33 
34 namespace makVrf
35 {
36  static DtNotifyLevelType DtNlQuestion = DtNotifyLevelType(DtNlDebug + 10);
37 
40 
42  {
43  public:
44  typedef std::vector<std::pair<makVrv::DtUnicode, int> > DtConsoleMessageList;
45 
48 
50  static DtObjectConsoleMessageHandler& instance(makVrv::DtDe& de);
51  static void registerInstance(makVrv::DtDe& de, DtObjectConsoleMessageHandler*);
52 
53  virtual void setEnabled(bool);
54  bool enabled() const
55  {
56  return myEnabled;
57  }
58 
59  boost::signal<void (const DtEntityIdentifier&, int notifyLevel, const makVrv::DtUnicode&)> signal_consoleMessageReceived;
60  boost::signal<void (int)> signal_messageQueueSizeChanged;
61  boost::signal<void (makVrv::DtElementID, int, int)> signal_questionStatusChanged;
62 
63  virtual void setMessageQueueSize(int);
64  int messageQueueSize() const
65  {
66  return myMessageQueueSize;
67  }
68 
70  virtual bool questionFor(makVrv::DtElementID id, int questionId, DtIfAskUserQuestion&) const;
71 
73  virtual std::vector<int> pendingQuestionsFor(makVrv::DtElementID) const;
74 
76  virtual bool hasOutstandingQuestions(makVrv::DtElementID) const;
77 
79  virtual DtConsoleMessageList messagesFor(const std::string& entityId) const;
80 
85  virtual void setReceivingMessagesFor(makVrv::DtElementID, bool);
86 
88  virtual void clearAllMessages(const std::string& entityId);
89 
90  virtual void userQuestionAnswered(makVrv::DtElementID id, int questionId);
91 
92  protected:
93  virtual void processObjectConsoleMessageCallback(DtNetworkMessageInterface*);
94  virtual void slot_simObjectEntryAboutToBeRemoved(makVrv::DtSimObjectEntry& entry);
95 
96  virtual void processUserQuestion(DtSimMessage*);
97  virtual bool processQuestion(const DtIfAskUserQuestion&);
98  virtual void processUserQuestionOperation(DtSimMessage*);
99 
101  virtual void messagesToResolve();
102  virtual void questionsToResolve();
103 
104  virtual makVrv::DtUnicode translateComment(DtCommentInteractionInterface* comment) const;
105  virtual void messagesToResolve(makVrv::DtElementID);
106  virtual void checkIfNeedsToNotifyForNewMessage(makVrv::DtElementID, int notifyLevel);
107 
108  protected:
109  typedef std::map<std::string, DtConsoleMessageList> DtConsoleMessageMap;
110 
112  bool myEnabled;
115 
116  std::map<makVrv::DtElementID, int> myReceivingMessagesFor;
117 
119  std::map<std::string, int> myHasAwaitingMessages;
120  std::map<std::string, DtIfAskUserQuestion> myHasAwaitingQuestions;
121 
122  std::map<makVrv::DtElementID, int> mySetAwaiting;
123 
124  typedef std::map<std::string, std::vector<DtIfAskUserQuestion> > PendingQuestions;
126  };
127 }

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)