![]() |
MAK RTIspy API Documentation for HLA 1.3
|
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