![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2007 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: vrfObjectCommunicationInterface.h,v $ $Revision: 1.7 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00013 00014 #ifndef vrfObjectCommunicationInterface_h 00015 #define vrfObjectCommunicationInterface_h 00016 00017 #include "vrfmsgs/msgExec.h" 00018 #include "vrfobjcore/vrfobjcoreDefines.h" 00019 #include "vrfmsgs/vrfObjectMessageExecutive.h" 00020 #include <list> 00021 00022 class DtVrfObject; 00023 class DtSimMessage; 00024 class DtSimInternalCommunicationInterface; 00025 class DtVrfObjectMessageExecutive; 00026 class DtVrfRadio; 00027 class DtRadioDescriptorList; 00028 00042 class DT_DLL_vrfobjcore DtVrfObjectCommunicationInterface 00043 { 00044 private: 00046 DtVrfObjectCommunicationInterface(); 00048 DtVrfObjectCommunicationInterface(const DtVrfObjectCommunicationInterface& orig); 00050 DtVrfObjectCommunicationInterface& operator=(const DtVrfObjectCommunicationInterface& orig); 00051 00052 public: 00059 static DtVrfObjectCommunicationInterface* create(DtVrfObject* vrfObject); 00060 00061 protected: 00063 DtVrfObjectCommunicationInterface(DtVrfObject* vrfObject); 00065 virtual bool init(); 00066 00067 public: 00068 virtual ~DtVrfObjectCommunicationInterface(); 00071 virtual void createRadiosFromDescriptorList(); 00074 virtual void createRadiosFromDescriptorList(const DtRadioDescriptorList& descList); 00075 00080 virtual void sendSimInternalMessage(DtVrfObjectMessage* message); 00081 00087 00088 00089 virtual bool sendRadioMessage(const DtString& radioName, DtVrfObjectMessage* message); 00093 virtual bool sendRadioMessage(int radioId, DtVrfObjectMessage* message); 00096 virtual bool sendRadioMessage(DtVrfObjectMessage* message); 00098 00102 virtual DtVrfRadio* lookupRadio(int radioId); 00105 virtual DtVrfRadio* lookupRadio(const DtString& radioName); 00108 virtual DtVrfRadio* defaultRadio(); 00109 00114 DtSimInternalCommunicationInterface* simInternalCommunicationInterface(); 00115 00119 00120 virtual void addMessageCallback(DtVrfObjectMessageCallbackFcn fcn, void* usr); 00121 virtual void removeMessageCallback(DtVrfObjectMessageCallbackFcn fcn, void* usr); 00123 00127 00128 virtual void addMessageCallback(int type, DtVrfObjectMessageCallbackFcn fcn, void* usr); 00129 virtual void removeMessageCallback(int type, DtVrfObjectMessageCallbackFcn fcn, void* usr); 00131 00137 00138 virtual void addMessageCallbackByCategory(int category, DtVrfObjectMessageCallbackFcn fcn, void* usr); 00139 virtual void removeMessageCallbackByCategory(int category, DtVrfObjectMessageCallbackFcn fcn, void* usr); 00141 00144 virtual void tick(); 00145 00146 protected: 00147 00150 00151 static void vrfObjectMessageCallback(const DtVrfObjectMessage* msg, void* usr); 00152 virtual void processVrfObjectMessage(const DtVrfObjectMessage* msg); 00154 00155 protected: 00156 DtVrfObject* myVrfObject; 00157 DtVrfObjectMessageExecutive myMessageExecutive; 00158 DtSimInternalCommunicationInterface* mySimInternalInterface; 00159 00160 typedef std::map<DtSymbolString, DtVrfRadio*> DtRadioMap; 00161 DtRadioMap myRadios; 00162 DtVrfRadio* myDefaultRadio; 00163 }; 00164 00165 #endif