![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2007 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: simInternalCommunicationManager.h,v $ $Revision: 1.1 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00013 00014 #ifndef simInternalCommunicationManager_h 00015 #define simInternalCommunicationManager_h 00016 00017 #include "vrfobjcore/vrfobjcoreDefines.h" 00018 #include <list> 00019 #include "vrfmsgs/vrfObjectMessage.h" 00020 #include <deque> 00021 00022 class DtSimManager; 00023 class DtSimInternalCommunicationInterface; 00024 class DtVrfObject; 00025 00033 class DT_DLL_vrfobjcore DtSimInternalCommunicationManager 00034 { 00035 private: 00037 DtSimInternalCommunicationManager(); 00039 DtSimInternalCommunicationManager(const DtSimInternalCommunicationManager& orig); 00041 DtSimInternalCommunicationManager& operator=(const DtSimInternalCommunicationManager& orig); 00042 00043 public: 00046 static DtSimInternalCommunicationManager* create(DtSimManager* simMgr); 00047 00048 protected: 00050 DtSimInternalCommunicationManager(DtSimManager* simMgr); 00052 virtual bool init(); 00053 00054 public: 00055 virtual ~DtSimInternalCommunicationManager(); 00056 00060 00061 virtual void registerCommunicationInterface(DtSimInternalCommunicationInterface* commIf); 00062 virtual void unregisterCommunicationInterface(DtSimInternalCommunicationInterface* commIf); 00064 00067 virtual void deliverMessage(const DtVrfObjectMessage* message); 00068 00070 virtual void tick(); 00071 00072 protected: 00074 00075 static void deliverRadioMessageCallback(DtSimMessage* msg, void* usr); 00076 virtual void processDeliverRadioMessage(DtSimMessage* msg); 00078 00081 virtual void deliverMessageLocally(const DtVrfObjectMessage* message); 00082 00085 virtual void deliverMessageRemotely(const DtVrfObjectMessage* message); 00086 00088 virtual bool objectShouldReceiveMessage(DtVrfObject* vrfObj, const DtVrfObjectMessage* msg); 00089 00090 protected: 00091 00092 DtSimManager* mySimManager; 00093 typedef std::list<DtSimInternalCommunicationInterface*> DtCommInterfaceList; 00094 DtCommInterfaceList myCommInterfaceList; 00095 00096 typedef std::deque<DtVrfObjectMessage*> DtMessageDeque; 00098 DtMessageDeque myMessagesToDeliver; 00099 }; 00100 00101 #endif