VR-Link API Documentation for HLA 1516
vlFedTarget.h
Go to the documentation of this file.
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 

Document ID: Generated on Mon May 14 08:06:18 EDT 2012 from SVN revision 114750
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)