![]() |
VR-Forces 4.0.4 Class Documentation
|
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