MAK RTIspy API Documentation for HLA 1.3
attrInfo.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 1998 MaK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: attrInfo.h,v $ $Revision: 1.27 $ $State: Exp $
00007 *********************************************************************/
00008 
00011 
00012 #ifndef DtAttrInfo_H_
00013 #define DtAttrInfo_H_
00014 
00015 #include "rtiMsConfig.h"
00016 #include "internalTypes.h"
00017 #include <vlutil/vlHashlist.h>
00018 #include <vlutil/vlMachineTypes.h>
00019 #include "fomMgr.h"
00020 #include "fedTargetHelper.h"
00021 #include <set>
00022 #include <map>
00023 
00024 #define DtPrivilegeToDelete 0
00025 
00026 class DtSubRegionSet;
00027 
00028 class DT_DLL_LRC DtAttrInfo
00029 {
00030 public:
00031 
00033    DtAttrInfo();
00034    DtAttrInfo(const char* attrName, int handle);
00035    DtAttrInfo(const DtAttrInfo& orig);
00036 
00038    DtAttrInfo& operator=(const DtAttrInfo& orig);
00039    bool operator==(const DtAttrInfo& orig);
00040    bool operator!=(const DtAttrInfo& orig);
00041 
00043    virtual ~DtAttrInfo();
00044 
00046    virtual void setFomType(MAKRti::DtFomType type);
00047    virtual MAKRti::DtFomType fomType() const;
00048 
00050    virtual void publish();
00051    virtual void unpublish();
00052 
00054    virtual int published() const;
00055 
00057    virtual void subscribe();
00058    virtual void unsubscribe();
00059 
00061    virtual int subscribed() const;
00062 
00064    virtual const char* name() const;
00065    virtual void setName(const char* nameValue);
00066 
00068    virtual DtAttributeHandle handle() const;
00069    virtual void setHandle(DtAttributeHandle handleValue);
00070 
00072    virtual bool isName(const char* name);
00073 
00076    virtual void addRemoteSubscription(DtFederateHandle fedHandle);
00077    virtual void deleteRemoteSubscription(DtFederateHandle fedHandle);
00078    virtual void emptyRemoteSubscription();
00079 
00082    virtual void addRemoteSubscriptionWithRegion(DtFederateHandle fedHandle,
00083       DtHandle regionSetHandle);
00084    virtual void deleteRemoteSubscriptionWithRegion(
00085       DtFederateHandle fedHandle);
00086    virtual void emptyRemoteSubscriptionWithRegion();
00087 
00089    virtual DtHandle remoteRegionSubscription(
00090       DtFederateHandle fedHandle) const;
00091 
00093    int numRemoteFederatesSubscribed();
00094 
00096    int numRemoteFederatesSubscribedWithRegion();
00097 
00099    virtual bool remoteFederateIsSubscribed(
00100       DtFederateHandle fedHandle) const;
00101 
00102 
00104    virtual const std::set<DtFederateHandle>& subscribedFederates() const;
00105 
00108    virtual bool remoteFederateIsSubscribedWithRegion(
00109       DtFederateHandle fedHandle) const;
00110 
00116    virtual void setRelevant(bool onOff);
00117    virtual bool relevant() const;
00118 
00120    virtual MAKRti::DtTransportType transport() const;
00121    virtual void setTransport(MAKRti::DtTransportType theTransport);
00122 
00124    virtual MAKRti::DtOrderType order() const;
00125    virtual void setOrder(MAKRti::DtOrderType theOrder);
00126 
00128    virtual DtSpaceHandle space() const;
00129    virtual void setSpace(DtSpaceHandle spaceVal);
00130 
00132    virtual DtFomUpdateType updateType() const;
00133    virtual void setUpdateType(DtFomUpdateType val);
00134 
00136    virtual MAKRti::DtString updateCondition() const;
00137    virtual void setUpdateCondition(MAKRti::DtString val);
00138 
00140    virtual DtOwnershipType ownershipType() const;
00141    virtual void setOwnershipType(DtOwnershipType val);
00142 
00144    virtual MAKRti::DtString semantics() const;
00145    virtual void setSemantics(MAKRti::DtString val);
00146 
00148    virtual MAKRti::DtString notes() const;
00149    virtual void setNotes(MAKRti::DtString val);
00150 
00152    virtual DtSharingType sharingType() const;
00153    virtual void setSharingType(DtSharingType val);
00154 
00156    virtual DtDimensionHandleSet const & dimensions() const;
00157    virtual void setDimensions(DtDimensionHandleSet const & dimList);
00158 
00160    virtual void addDimension(DtDimensionHandle dimHandle);
00161    virtual void removeDimension(DtDimensionHandle dimHandle);
00162 
00164    virtual DtSubRegionSet* subRegionSet() const;
00165    virtual void setSubRegionSet(DtSubRegionSet* setVal);
00166 
00168    virtual DtSubRegionSet* pasRegionSet() const;
00169    virtual void setPasRegionSet(DtSubRegionSet* setVal);
00170 
00171    virtual float subscribedRate() const;
00172    virtual const MAKRti::DtString& subscribedRateName() const;
00173    virtual void setSubscribedRate(float rate, const MAKRti::DtString& name);
00174 
00175 
00177    virtual bool sameDataTypes(const DtAttrInfo&) const;
00178    virtual bool sameUpdateType(const DtAttrInfo&) const;
00179    virtual bool sameUpdateCondition(const DtAttrInfo&) const;
00180    virtual bool sameSharing(const DtAttrInfo&) const;
00181    virtual bool sameDimensions(const DtAttrInfo&) const;
00182    virtual bool sameTransportation(const DtAttrInfo&) const;
00183    virtual bool sameOrder(const DtAttrInfo&) const;
00184    virtual bool sameSemantics(const DtAttrInfo&) const;
00185    virtual bool sameOwnership(const DtAttrInfo&) const;
00186    virtual bool sameNotes(const DtAttrInfo&) const;
00187 
00189    virtual void print() const;
00190 
00191 public:
00192    static bool nameIsPrivilegeToDelete(char const* name, MAKRti::DtFomType compareType);
00193    static char const* privilegeToDeleteName(MAKRti::DtFomType compareType);
00194 
00195 protected:
00196 
00197    MAKRti::DtString myName;
00198    DtAttributeHandle myHandle;
00199    MAKRti::DtFomType myFomType;
00200    int myPublished;
00201    int mySubscribed;
00202    bool myRelevant;
00203    MAKRti::DtTransportType myTransport;
00204    MAKRti::DtOrderType myOrder;
00205    DtFomUpdateType myUpdateType;
00206    MAKRti::DtString myUpdateCondition;
00207    DtSharingType mySharingType;
00208    DtOwnershipType myOwnershipType;
00209    MAKRti::DtString mySemantics;
00210    MAKRti::DtString myNotes;
00211    DtSpaceHandle mySpace;
00212    DtDimensionHandleSet myDimensions;
00213    DtSubRegionSet* myAssocSubRegSet;
00214    DtSubRegionSet* myAssocPasRegSet;
00215 
00216    std::set<DtFederateHandle> myRemoteSubscriptions;
00217    std::map<DtFederateHandle, DtHandle> myRemoteRegionSubscriptions;
00218 
00220    float mySubscribedRate;
00221    MAKRti::DtString mySubscribedRateName;
00222 
00223 public:
00224    static const MAKRti::DtString thePrivilegeToDelete;
00225    static const MAKRti::DtString thePrivilegeToDeleteObject;
00226    static const MAKRti::DtString theHlaPrivilegeToDeleteObject;
00227 };
00228 
00229 #endif
00230 
00231 
00232 
00233 
00234 
00235 
00236 

Document ID: Generated on Thu Jun 14 14:15:04 EDT 2012 from SVN revision 116116
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)