![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2008 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtObjectConsoleMessageHandler.h,v $ $Revision: 1.1 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00011 00013 00014 #pragma once 00015 00016 #include <vrvUtil/signalslib.h> 00017 00018 #include <vrfGuiCore/vrfGuiCore.h> 00019 #include <vrvCore/DtUniqueID.h> 00020 #include <vrvUtil/DtVirtualBaseClass.h> 00021 00022 namespace makVrv 00023 { 00024 class DtDe; 00025 class DtSimObjectEntry; 00026 } 00027 00028 class DtEntityIdentifier; 00029 class DtString; 00030 00031 namespace makVrf 00032 { 00033 class DtNetworkMessageInterface; 00034 00035 class DT_DLL_VRFGUICORE DtObjectConsoleMessageHandler : public makVrv::DtVirtualBaseClass 00036 { 00037 public: 00038 typedef std::vector<std::pair<std::string, int> > DtConsoleMessageList; 00039 00040 DtObjectConsoleMessageHandler(makVrv::DtDe&); 00041 virtual ~DtObjectConsoleMessageHandler(); 00042 00044 static DtObjectConsoleMessageHandler& instance(makVrv::DtDe& de); 00045 00046 virtual void setEnabled(bool); 00047 bool enabled() const 00048 { 00049 return myEnabled; 00050 } 00051 00052 boost::signal<void (const DtEntityIdentifier&, int notifyLevel, const std::string&)> signal_consoleMessageReceived; 00053 boost::signal<void (int)> signal_messageQueueSizeChanged; 00054 00055 virtual void setMessageQueueSize(int); 00056 int messageQueueSize() const 00057 { 00058 return myMessageQueueSize; 00059 } 00060 00061 virtual DtConsoleMessageList messagesFor(const std::string& entityId) const; 00062 00067 virtual void setReceivingMessagesFor(makVrv::DtElementID, bool); 00068 00069 protected: 00070 virtual void processObjectConsoleMessageCallback(DtNetworkMessageInterface*); 00071 virtual void slot_simObjectEntryAboutToBeRemoved(makVrv::DtSimObjectEntry& entry); 00072 00074 virtual void messagesToResolve(); 00075 00076 protected: 00077 typedef std::map<std::string, DtConsoleMessageList> DtConsoleMessageMap; 00078 00079 makVrv::DtDe& myDe; 00080 bool myEnabled; 00081 int myMessageQueueSize; 00082 DtConsoleMessageMap myConsoleMessageMap; 00083 00084 std::map<makVrv::DtElementID, int> myReceivingMessagesFor; 00085 00087 std::map<std::string, bool> myHasAwaitingMessages; 00088 00089 std::map<makVrv::DtElementID, bool> mySetAwaiting; 00090 }; 00091 }