VR-Forces 4.0.4 Class Documentation
include/vrfGuiCore/DtNetworkMessageCallbackManager.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 2008 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 /******************************************************************************
00006 ** $RCSfile: DtNetworkMessageCallbackManager.h,v $ $Revision: 1.1 $ $State: Exp $
00007 ******************************************************************************/
00008 
00011 
00015 
00016 #pragma once
00017 
00018 #include <vrfGuiCore/vrfGuiCore.h>
00019 #include <vrfGuiCore/DtQueuedManager.h>
00020 #include <vrfGuiCore/DtGuiThreadVrfRemoteController.h>
00021 #include <vrfGuiCore/DtCommentInteractionInterface.h>
00022 
00023 #include <vrvUtil/signalslib.h>
00024 #include <vrvCore/DtDe.h>
00025 
00026 #include <vrfplan/plan.h>
00027 
00028 class DtSimMessage;
00029 
00031 
00032 #define CONNECT_FOR_SIM_MESSAGE(_type, _function) makVrf::DtNetworkMessageCallbackManager::instance(myDe).simMessageSignal(_type).connect(_function);
00033 #define DISCONNECT_FOR_SIM_MESSAGE(_type, _function) makVrf::DtNetworkMessageCallbackManager::instance(myDe).simMessageSignal(_type).disconnect(_function);
00034 
00035 #define CONNECT_FOR_OBJECT_MESSAGE(_type, _function) makVrf::DtNetworkMessageCallbackManager::instance(myDe).objectMessageSignal(_type).connect(_function);
00036 #define DISCONNECT_FOR_OBJECT_MESSAGE(_type, _function) makVrf::DtNetworkMessageCallbackManager::instance(myDe).objectMessageSignal(_type).disconnect(_function);
00037 
00038 #define CONNECT_FOR_COMMENT_INTERACTION(_function) makVrf::DtNetworkMessageCallbackManager::instance(myDe).networkInterfaceMessageSignal(DtCommentInteractionInterface::theName()).connect(_function);
00039 #define DISCONNECT_FOR_COMMENT_INTERACTION(_function) makVrf::DtNetworkMessageCallbackManager::instance(myDe).networkInterfaceMessageSignal(DtCommentInteractionInterface::theName()).disconnect(_function);
00040 
00041 #define CONNECT_FOR_INTERFACE_MESSAGE(_type, _function) makVrf::DtNetworkMessageCallbackManager::instance(myDe).networkInterfaceMessageSignal(_type).connect(_function);
00042 #define DISCONNECT_FOR_INTERFACE_MESSAGE(_type, _function) makVrf::DtNetworkMessageCallbackManager::instance(myDe).networkInterfaceMessageSignal(_type).disconnect(_function);
00043 
00044 #define CONNECT_FOR_RADIO_MESSAGE(_type, _function) makVrf::DtNetworkMessageCallbackManager::instance(myDe).radioMessageSignal(_type).connect(_function);
00045 #define DISCONNECT_FOR_RADIO_MESSAGE(_type, _function) makVrf::DtNetworkMessageCallbackManager::instance(myDe).radioMessageSignal(_type).disconnect(_function);
00046 
00047 namespace makVrf
00048 {
00049    class DtNetworkMessageInterface;
00050 
00051    typedef boost::signal<void (DtSimMessage*)> SimMessageSignal;
00052    typedef boost::signal<void (const DtVrfObjectMessage*)> ObjectMessageCallbackSignal;
00053    typedef boost::signal<void (DtNetworkMessageInterface*)> NetworkInterfaceCallbackSignal;
00054 
00061    class DT_DLL_VRFGUICORE DtNetworkMessageCallbackManager : public DtQueuedManager
00062    {
00063    public:
00064       typedef std::map<int, SimMessageSignal*> DtVrfMessageCallbackMap;
00065       typedef std::map<int, ObjectMessageCallbackSignal*> DtVrfObjectMessageCallbackMap;
00066       typedef std::map<std::string, NetworkInterfaceCallbackSignal*> DtNetworkCallbackMap;
00067 
00068    public:
00069       DtNetworkMessageCallbackManager(makVrv::DtDe&);
00070       virtual ~DtNetworkMessageCallbackManager();
00071 
00073       static DtNetworkMessageCallbackManager& instance(makVrv::DtDe& de);
00074 
00075    public:
00079 
00080       virtual SimMessageSignal& simMessageSignal(int type);
00082 
00086 
00087       virtual ObjectMessageCallbackSignal& objectMessageSignal(int type);
00089 
00093 
00094       virtual ObjectMessageCallbackSignal& radioMessageSignal(int type);
00096 
00099 
00100       virtual NetworkInterfaceCallbackSignal& networkInterfaceMessageSignal(std::string messageName);
00102 
00104       virtual void messageReceived(DtNetworkMessageInterface*);
00105 
00106    protected:
00108       virtual void registerSimMessageCallbackWithDriver(int t);
00109 
00111       virtual void unregisterSimMessageCallbackWithDriver(int t);
00112 
00113       virtual void processSimMessageCallback(DtNetworkMessageInterface*);
00114 
00115       virtual void vrfObjectMessageCallback(DtSimMessage* msg);
00116 
00118       virtual void processVrfObjectMessageInterfaceCallback(DtNetworkMessageInterface* msg);
00119 
00121       virtual void processVrfObjectMessageCallback(DtVrfObjectMessage* msg, bool forFrontEndOnly = true);
00122 
00124       virtual void registerForCommentInteraction();
00125 
00127       virtual void unregisterForCommentInteraction();
00128 
00129    protected:
00130 
00131       virtual void registerRadioMessageCallbackFor(int type);
00132       virtual void unregisterRadioMessageCallbackFor(int type);
00133 
00134       virtual void registerObjectMessageCallbackFor(int type);
00135       virtual void unregisterObjectMessageCallbackFor(int type);
00136 
00137    protected:
00138       DtVrfMessageCallbackMap          myCallbacks;
00139       DtVrfObjectMessageCallbackMap    myVrfObjectMessageCallbacks;
00140       DtNetworkCallbackMap             myNetworkCallbackMap;
00141    };
00142 }

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)