![]() |
VR-Link API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00009 #pragma once 00010 00011 #include "vlMachineTypes.h" 00012 #include <vlutil/vlString.h> 00013 #include <map> 00014 #include <vector> 00015 00016 #ifdef DtUSE_UTILITIES_NAMESPACE 00017 namespace DtUSE_UTILITIES_NAMESPACE 00018 { 00019 #endif 00020 00021 enum DtFomType 00022 { 00023 DtFomInvalid = 0, 00024 DtFom13 = 1, 00025 DtFom1516 = 2, 00026 DtFom1516E = 3 00027 }; 00028 00029 enum DtTransportType 00030 { 00031 DtBest_Effort, 00032 DtReliable 00033 }; 00034 00035 enum DtOrderType 00036 { 00037 DtReceive, 00038 DtTimestamp 00039 }; 00040 00043 enum DtResignAction 00044 { 00045 DtUnconditionallyDivestAttributes = 1, 00046 DtDeleteObjects, 00047 DtDeleteObjectsThanDivest, 00048 DtNoAction, 00049 DtCancelPendingOwnershipAcquitions, 00050 DtCancelThenDeleteThenDivest 00051 }; 00052 00053 typedef std::map<unsigned long, DtString> DtUpdateRateNameByHandleMap; 00054 typedef std::map<DtString, unsigned long> DtUpdateRateHandleByNameMap; 00055 00060 00061 class DT_DLL_VLUTIL DtFedTarget 00062 { 00063 public: 00064 00066 DtFedTarget(); 00067 00069 virtual ~DtFedTarget(); 00070 00072 DtFedTarget(const DtFedTarget& orig); 00073 00075 DtFedTarget& operator=(const DtFedTarget& orig); 00076 00078 virtual void setFomType(DtFomType type); 00079 virtual DtFomType fomType(); 00080 00082 virtual void addSpace(const char* name) = 0; 00083 00086 virtual void addDimension(const char* SpaceName, const char* dimName) = 0; 00087 00089 virtual void addDimension(const char* dimName, unsigned long upperBound, 00090 unsigned long defaultLowerBound, unsigned long defaultUpperBound, 00091 bool excluded) = 0; 00092 00094 virtual void addInterClass(const char* name, 00095 const char* baseName, DtTransportType transport, 00096 DtOrderType order, const char* space=0) = 0; 00097 00100 virtual void addParameter(const char* className, 00101 const char* paramName) = 0; 00102 00105 virtual bool addInteractionDimension(const char* interactionName, 00106 const char* dimension) = 0; 00107 00109 virtual void addObjClass(const char* name, 00110 const char* baseName) = 0; 00111 00114 virtual void addAttribute(const char* className, 00115 const char* attributeName, DtTransportType transport, 00116 DtOrderType order, const char* space=0) = 0; 00117 00120 virtual bool addAttributeDimension(const char* className, 00121 const char* attrName, const char* dimName) = 0; 00122 00123 00124 //------------------------------------------------------------------------- 00126 //------------------------------------------------------------------------- 00127 00129 virtual bool autoProvide() const; 00130 virtual void setAutoProvide(bool value); 00131 00133 virtual bool conveyRegionDesignatorSets() const; 00134 virtual void setConveyRegionDesignatorSets(bool value); 00135 00137 virtual bool conveyProducingFederate() const; 00138 virtual void setConveyProducingFederate(bool value); 00139 00141 virtual bool attributeScopeAdvisory() const; 00142 virtual void setAttributeScopeAdvisory(bool value); 00143 00145 virtual bool attributeRelevanceAdvisory() const; 00146 virtual void setAttributeRelevanceAdvisory(bool value); 00147 00149 virtual bool objectClassRelevanceAdvisory() const; 00150 virtual void setObjectClassRelevanceAdvisory(bool value); 00151 00153 virtual bool interactionRelevanceAdvisory() const; 00154 virtual void setInteractionRelevanceAdvisory(bool value); 00155 00157 virtual bool serviceReporting() const; 00158 virtual void setServiceReporting(bool value); 00159 00161 virtual bool exceptionReporting() const; 00162 virtual void setExceptionReporting(bool value); 00163 00165 virtual bool delaySubscriptionEvaluation() const; 00166 virtual void setDelaySubscriptionEvaluation(bool value); 00167 00169 virtual DtResignAction automaticResignAction() const; 00170 virtual void setAutomaticResignAction(DtResignAction value); 00171 00173 virtual bool knownUpdateRate( const DtString updateRateName ) const; 00174 00176 virtual void addUpdateRate( const DtString updateRateName, float rate ); 00177 00179 DtString updateRateNameByHandle( unsigned long handle ); 00180 00181 public: 00182 00184 static void setDefaultAutoProvide(bool onOff); 00185 static bool defaultAutoProvide(); 00186 00188 static void setDefaultConveyRegionDesignatorSets(bool onOff); 00189 static bool defaultConveyRegionDesignatorSets(); 00190 00192 static void setDefaultConveyProducingFederate(bool onOff); 00193 static bool defaultConveyProducingFederate(); 00194 00196 static void setDefaultObjectClassRelevanceAdvisory(bool onOff); 00197 static bool defaultObjectClassRelevanceAdvisory(); 00198 00200 static void setDefaultAttributeRelevanceAdvisory(bool onOff); 00201 static bool defaultAttributeRelevanceAdvisory(); 00202 00204 static void setDefaultAttributeScopeAdvisory(bool onOff); 00205 static bool defaultAttributeScopeAdvisory(); 00206 00208 static void setDefaultInteractionRelevanceAdvisory(bool onOff); 00209 static bool defaultInteractionRelevanceAdvisory(); 00210 00212 static void setDefaultServiceReporting(bool onOff); 00213 static bool defaultServiceReporting(); 00214 00216 static void setDefaultExceptionReporting(bool onOff); 00217 static bool defaultExceptionReporting(); 00218 00220 static void setDefaultAutomaticResignAction( DtResignAction val ); 00221 static DtResignAction defaultAutomaticResignAction(); 00222 00223 protected: 00224 00225 bool myAutoProvide; 00226 bool myConveyRegionDesignatorSets; 00227 bool myConveyProducingFederate; 00228 bool myAttributeScopeAdvisory; 00229 bool myAttributeRelevanceAdvisory; 00230 bool myObjectClassRelevanceAdvisory; 00231 bool myInteractionRelevanceAdvisory; 00232 bool myServiceReporting; 00233 bool myExceptionReporting; 00234 bool myDelaySubscriptionEvaluation; 00235 DtResignAction myAutomaticResignAction; 00236 00237 DtFomType myFomType; 00238 00240 std::vector<float> myUpdateRates; 00241 00243 DtUpdateRateHandleByNameMap myUpdateRateHandleByName; 00244 00246 DtUpdateRateNameByHandleMap myUpdateRateNameByHandle; 00247 00248 protected: 00249 00250 static bool theDefaultAutoProvide; 00251 static bool theDefaultConveyRegionDesignatorSets; 00252 static bool theDefaultConveyProducingFederate; 00253 static bool theDefaultObjectClassRelevanceAdvisory; 00254 static bool theDefaultAttributeRelevanceAdvisory; 00255 static bool theDefaultAttributeScopeAdvisory; 00256 static bool theDefaultInteractionRelevanceAdvisory; 00257 static bool theDefaultServiceReporting; 00258 static bool theDefaultExceptionReporting; 00259 static DtResignAction theDefaultAutomaticResignAction; 00260 }; 00261 00262 #ifdef DtUSE_UTILITIES_NAMESPACE 00263 } 00264 #endif 00265