![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2007 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: simpleRadioCommModel.h,v $ $Revision: 1.4 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00013 00014 #ifndef simpleRadioCommModel_h 00015 #define simpleRadioCommModel_h 00016 00017 #include "vrfobjcore/commModel.h" 00018 #include "vrfMsgTransport/signalMessageTransporter.h" 00019 #include "vrfobjcore/vrfobjcoreDefines.h" 00020 #include <deque> 00021 00022 class DtSimpleRadioCommModelDescriptor; 00023 00030 class DT_DLL_vrfobjcore DtSimpleRadioCommModel : public DtCommModel 00031 { 00032 private: 00034 00035 DtSimpleRadioCommModel(); 00036 DtSimpleRadioCommModel(const DtSimpleRadioCommModel& orig); 00037 DtSimpleRadioCommModel& operator=(const DtSimpleRadioCommModel& orig); 00039 00040 protected: 00042 DtSimpleRadioCommModel(DtCommModelCreationParams& params); 00045 virtual bool init(); 00046 00048 virtual void tick(); 00049 00050 public: 00053 static DtCommModel* create(DtCommModelCreationParams& params); 00054 00055 virtual ~DtSimpleRadioCommModel(); 00056 00060 virtual DtString type() const; 00061 00064 virtual void registerRadio(DtVrfRadio* radio); 00065 00067 virtual void sendMessage(DtVrfObjectMessage* message, DtVrfRadio* sendingRadio); 00068 00069 protected: 00072 virtual DtSignalMessageTransporter* createTransporter(); 00073 00079 virtual bool checkRadioConnectivity(DtVrfObject* sender, DtVrfObject* receiver); 00080 00083 virtual void deliverMessageToRecipients(const DtVrfObjectMessage* message); 00084 00085 static void messageReceivedCallback(DtSignalMessageTransporterCallbackParams* params, 00086 void* usr); 00087 00088 virtual void processMessageReceived(DtSignalMessageTransporterCallbackParams* params); 00089 00090 protected: 00091 enum ConnectionMode 00092 { 00093 ConnectionModeAll = 0, 00094 ConnectionModeAggregate = 1, 00095 ConnectionModeForce = 2 00096 }; 00097 00098 DtSignalMessageTransporter* myTransporter; 00099 typedef std::deque<DtVrfObjectMessageConstPtr> DtMessageQueue; 00100 DtMessageQueue myMessagesToDeliver; 00101 const DtSimpleRadioCommModelDescriptor* mySimpleCommDescriptor; 00102 ConnectionMode myConnectionMode; 00103 }; 00104 00105 #endif