VR-Forces 4.0.4 Class Documentation
include/vrfExtObjects/vrfExtAppInit.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2005 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: vrfExtAppInit.h,v $ $Revision: 1.4 $ $State: Exp $
00007 *******************************************************************************/
00008 
00009 #ifndef VRFEXTAPPOPTIONS_H_
00010 #define VRFEXTAPPOPTIONS_H_
00011 
00012 #include <vlutil/vlMachineTypes.h>
00013 #include <vl/exConnInit.h>
00014 #include <mtl/mtl.h>
00015 #include <vector>
00016 
00017 // class DtVrfExtApplicationInitializer:
00018 //
00019 // Instances of DtVrfExtApplicationInitializer are
00020 
00021 #include <vrfExtObjects/vrfExtObjectsDefines.h>
00022 class DT_DLL_vrfExtObjects DtVrfExtApplicationInitializer : public DtVrlApplicationInitializer
00023 {
00024 
00025 public:
00026 
00027    // Default constructor
00028    DtVrfExtApplicationInitializer(int argc, char** argv,const char* appName, const char* appVersion);
00029 
00030    // Destructor
00031    virtual ~DtVrfExtApplicationInitializer();
00032 
00033    virtual void initializeMtlParams();
00034 
00035    // Returns mtl environment variable to be able to add new mtl environment items to
00036    DtMtlEnvironment* mtlEnvironment();
00037 
00038 public:
00039    // Returns true if a custom DtMapDatum has been specified
00040    virtual bool useCustomMapDatum() const;
00041    // Returns the spheroid semiMajor axis for a custom DtMapDatum
00042    virtual DtFloat64 spheroidSemiMajor() const;
00043    // Returns the spheroid semiMinor axis for a custom DtMapDatum
00044    virtual DtFloat64 spheroidSemiMinor() const;
00045    // Returns the x datumShift for a custom DtMapDatum
00046    virtual DtFloat64 datumShiftX() const;
00047    // Returns the y datumShift for a custom DtMapDatum
00048    virtual DtFloat64 datumShiftY() const;
00049    // Returns the z datumShift for a custom DtMapDatum
00050    virtual DtFloat64 datumShiftZ() const;
00051 
00052    virtual void setMaxDrainInputTime(double maxTime);
00053    virtual double maxDrainInputTime() const;
00054 
00055    virtual void setMinDrainInputTime(double minTime);
00056    virtual double minDrainInputTime() const;
00057 
00058    virtual void setMaxDrainInputReads(int reads);
00059    virtual int maxDrainInputReads() const;
00060 
00061 #if DtDIS
00062    virtual std::vector<DtString>& multicastAddresses();
00063 
00064    virtual void setDefaultHeartbeatThreshold(double);
00065    virtual double defaultHeartbeatThreshold(void) const;
00066 
00067    virtual void setDefaultObjectTimeout(double);
00068    virtual double defaultObjectTimeout() const;
00069 
00070    // Returns lower/upper range of DIS app id for VRF published objects.  Default is 3000-4000
00071    virtual void appIdRange(int& lower, int& upper);
00072    virtual void setAppIdRange(int lower, int upper);
00073 
00074 #endif
00075 
00076 #ifdef DtHLA
00077    virtual void setApplicationNumber(int);
00078    virtual int applicationNumber() const;
00079    virtual void setSiteId(int);
00080    virtual int siteId() const;
00081 #endif
00082 
00083 #ifdef DtDIS
00084    static void addMulticastAddr(const DtString& s);
00085    static DtlObjPtr addMulticastAddr(const DtlObjPtr& args, const DtlObjPtr&);
00086 #endif
00087 
00088 private:
00089 
00090    // Copy constructor -- not implemented
00091    DtVrfExtApplicationInitializer(const DtVrfExtApplicationInitializer& orig);
00092 
00093    // Assignment operator -- not implemented
00094    DtVrfExtApplicationInitializer& operator=(const DtVrfExtApplicationInitializer& rhs);
00095 
00096 protected:
00097    // Used only when reading from MTL files, then stashed into
00098    // command line variables
00099 
00100 #if DtDIS
00101    // Range to use for lower/upper bound of dis app id range which will
00102    // tell what range is used to identify a VRF generated object
00103    DtConfigVariable<DtString>  myAppIdRange;
00104 
00105    static std::vector<DtString>& mtlMcastAddrList();
00106    static std::vector<DtString> theMtlMcastAddrList;
00107 #endif
00108 
00109 #if DtHLA
00110    // This is already in the DIS base-class... For the PVD,
00111    // make one for HLA
00112    DtConfigVariable<int> myApplicationNumber;
00113    DtConfigVariable<int> mySiteId;
00114 #endif
00115    // DtMapDatum Variables
00116    short       myUseCustomMapDatum;
00117    DtFloat64   mySpheroidSemiMajor;
00118    DtFloat64   mySpheroidSemiMinor;
00119    DtFloat64   myDatumShiftX;
00120    DtFloat64   myDatumShiftY;
00121    DtFloat64   myDatumShiftZ;
00122 
00123    double   myMaxDrainInputTime;
00124 
00125    // HLA only
00126    double   myMinDrainInputTime;
00127 
00128    // DIS only
00129    int         myMaxDrainInputReads;
00130    double      myDefaultHeartbeatThreshold;
00131    double      myDefaultObjectTimeout;
00132 };
00133 
00134 inline DtMtlEnvironment* DtVrfExtApplicationInitializer::mtlEnvironment()
00135 {
00136    return myMtlEnv;
00137 }
00138 
00139 #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)