VR-Forces 4.0.4 Class Documentation
include/vrfobjcore/vrfRadio.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2007 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: vrfRadio.h,v $ $Revision: 1.6 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00013 
00014 #ifndef vrfRadio_h
00015 #define vrfRadio_h
00016 
00017 #include "tdbutil/stringKeyFactory.h"
00018 #include "vrfobjcore/vrfobjcoreDefines.h"
00019 #include "vrfmsgs/vrfObjectMessageExecutive.h"
00020 #include "vrfmsgs/vrfObjectMessage.h"
00021 #include <deque>
00022 
00023 class DtVrfObject;
00024 class DtVrfRadio;
00025 class DtVrfRadioDescriptor;
00026 class DtVrfObjectMessageExecutive;
00027 class DtCommModel;
00028 class DtVrfRadioTransmitter;
00029 class DtSettingsObject;
00030 
00032 struct DtRadioCreationParams
00033 {
00034    DtVrfObject* vrfObject;
00035    const DtVrfRadioDescriptor* radioDescriptor;
00037    int radioId;
00038 };
00039 
00041 typedef DtStringKeyFactoryWithParam<DtVrfRadio, DtRadioCreationParams&> DtVrfRadioFactory;
00042 
00047 class DT_DLL_vrfobjcore DtVrfRadio
00048 {
00049 private:
00051 
00052    DtVrfRadio();
00053    DtVrfRadio(const DtVrfRadio& orig);
00054    DtVrfRadio& operator=(const DtVrfRadio& orig);
00056 
00057 public:
00058    DtVrfRadio(DtRadioCreationParams& params);
00059    virtual ~DtVrfRadio();
00060 
00062    virtual bool init();
00063 
00066    virtual DtString type() const;
00067 
00071    virtual bool sendMessage(DtVrfObjectMessage* message);
00072 
00075 
00076    virtual void addMessageCallback(DtVrfObjectMessageCallbackFcn fcn, void* usr);
00077    virtual void removeMessageCallback(DtVrfObjectMessageCallbackFcn fcn, void* usr);
00079 
00082 
00083    virtual void addMessageCallback(int type, DtVrfObjectMessageCallbackFcn fcn, void* usr);
00084    virtual void removeMessageCallback(int type, DtVrfObjectMessageCallbackFcn fcn, void* usr);
00086 
00092    virtual bool readyToSend() const;
00093 
00096    virtual void tick();
00097 
00101    virtual void receiveMessage(const DtVrfObjectMessage* message);
00102 
00105    virtual void setReadyToSend(bool val);
00106 
00108    virtual DtVrfObject* vrfObject();
00109 
00111    virtual int radioId() const;
00112 
00115    virtual double sampleRate() const;
00116 
00121 
00122    virtual const DtVrfRadioTransmitter* radioTransmitter() const;
00123    virtual DtVrfRadioTransmitter* radioTransmitter();
00125 
00127    static DtVrfRadio* create(DtRadioCreationParams& params);
00128 
00130    static void setFactory(DtVrfRadioFactory* factory);
00132    static DtVrfRadio* createRadio(const DtString& typeString, DtVrfObject* vrfObject,
00133       const DtVrfRadioDescriptor* descriptor, int radioId);
00134 
00144    static void readCommModelSettingsCallback(
00145       const DtSettingsObject* settings, void* usr);
00146    virtual void processReadCommModelSettings(const DtSettingsObject* settings);
00147 
00148 protected:
00149    static DtVrfRadioFactory* theFactory;
00150 
00151    DtVrfObject* myVrfObject;
00152    const DtVrfRadioDescriptor& myRadioDescriptor;
00153    DtVrfObjectMessageExecutive myMessageExecutive;
00155    DtCommModel* myCommModel;
00156    DtVrfRadioTransmitter* myRadioTransmitter;
00157    int myRadioId;
00158    bool myReadyToSend;
00159    typedef std::deque<DtVrfObjectMessagePtr> DtMessageQueue;
00160    DtMessageQueue myMessageQueuedToSend;
00161 };
00162 
00163 #endif

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)