![]() |
MAK RTIspy API Documentation for HLA Evolved
|
00001 /********************************************************************* 00002 ** Copyright (c) 2001 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: objRegSet.h,v $ $Revision: 1.20 $ $State: Exp $ 00007 *********************************************************************/ 00010 00011 #ifndef DtObjectRegSet_H_ 00012 #define DtObjectRegSet_H_ 00013 #ifdef DDM 00014 00015 #include "regionSet.h" 00016 #include "attrHandSet.h" 00017 00018 class DtRegAttrAssoc; 00019 00020 class DT_DLL_LRC DtObjectRegionSet : public DtRegionSet 00021 { 00022 public: 00023 00024 DtObjectRegionSet(); 00025 DtObjectRegionSet(DtRegionHandle setHandleValue, DtRegionRealization* region); 00026 00027 virtual ~DtObjectRegionSet(); 00028 00030 virtual bool inUse(); 00031 00033 virtual void addAttribute(DtObjectClassInfo* classDesc, 00034 DtAttributeHandle attrHandle); 00035 virtual void removeAttribute(DtObjectClassHandle classHandle, 00036 DtAttributeHandle attrHandle); 00037 00039 virtual void addAttribute(DtObjectInstanceHandle objectHandle, 00040 const char* objName, DtObjectClassInfo* classDesc, 00041 DtAttributeHandle attrHandle); 00042 virtual void removeAttribute(DtObjectInstanceHandle objectHandle, 00043 DtObjectClassInfo* classDesc, DtAttributeHandle attrHandle); 00044 00046 virtual void addUnownedAttribute(DtObjectInstanceHandle objectHandle, 00047 DtAttributeHandle attrHandle); 00048 virtual void removeUnownedAttribute(DtObjectInstanceHandle objectHandle, 00049 DtAttributeHandle attrHandle); 00050 00052 virtual void addAttributes(DtObjectClassInfo* classDesc, 00053 const DtAttributeHandleSet& attrSet); 00054 virtual void removeAttributes(DtObjectClassHandle classHandle, 00055 const DtAttributeHandleSet& attrSet); 00056 00058 virtual void addAttributes(DtObjectInstanceHandle objectHandle, 00059 const char* objName, DtObjectClassInfo* classDesc, 00060 const DtAttributeHandleSet& attrSet); 00061 virtual void removeAttributes(DtObjectInstanceHandle objectHandle, 00062 DtObjectClassInfo* classDesc, const DtAttributeHandleSet& attrSet); 00063 00065 virtual void addUnownedAttributes(DtObjectInstanceHandle objectHandle, 00066 const DtAttributeHandleSet& attrSet); 00067 virtual void removeUnownedAttributes(DtObjectInstanceHandle objectHandle, 00068 const DtAttributeHandleSet& attrSet); 00069 00071 virtual DtAttributeHandleSet* attributes(DtObjectClassHandle classHandle); 00073 virtual const DtAttributeHandleSet* attributes( 00074 DtObjectClassHandle classHandle) const; 00075 00078 virtual bool attributesOf(DtObjectClassHandle classHandle, 00079 DtAttributeHandleSet& attributes) const; 00080 00084 virtual bool attributesMatching(DtObjectClassInfo const& classInfo, 00085 DtAttributeHandleSet& attributes) const; 00086 00088 virtual bool isMemberAttributes(DtObjectClassHandle classHandle, 00089 DtAttributeHandle attrHandle) const; 00090 00092 virtual const DtAttributeHandleSet* objectAttributes(DtObjectInstanceHandle objectHandle); 00093 00095 virtual const DtAttributeHandleSet* objectUnownedAttributes( 00096 DtObjectInstanceHandle objectHandle); 00097 00099 virtual bool isMemberObject(DtObjectInstanceHandle objectHandle); 00100 00102 virtual const MAKRti::DtHashList& objectAssociations(); 00103 00105 virtual const MAKRti::DtHashList& objectUnownedAssociations(); 00106 00108 virtual void addOverlap(DtObjectRegionSet* regionSet); 00109 00111 virtual void removeOverlap(DtRegionHandle regionSetHandle); 00112 00114 virtual unsigned int overlapCount() const; 00115 00117 virtual const DtRegionSetList& overlapList(); 00118 00121 virtual void emptyOverlaps(MAKRti::DtList* overlapsRemoved=NULL); 00122 00124 virtual bool isOverlap(DtRegionHandle regionSetHandle) const; 00125 00127 virtual void addMatch(DtObjectRegionSet* regionSet, 00128 DtObjectClassHandle classHandle); 00129 virtual void removeMatch(DtRegionHandle regionSetHandle, 00130 DtObjectClassHandle classHandle); 00131 00133 virtual void removeMatches(DtRegionHandle regionSetHandle); 00134 00136 virtual bool isMatch(DtRegionHandle regSetHandle) const; 00137 00139 virtual bool isMatchedClass(DtRegionHandle regionSetHandle, 00140 DtObjectClassHandle classHandle); 00141 00143 virtual void addMatchOverlap(DtObjectRegionSet* regionSet); 00144 virtual void removeMatchOverlap(DtRegionHandle regionSetHandle); 00145 00147 virtual bool isMatchOverlap(DtRegionHandle regionSetHandle) const; 00148 00150 virtual unsigned int matchCount() const; 00151 00153 virtual unsigned int matchOverlapCount() const; 00154 00156 virtual const DtRegionSetList& matchList(); 00157 00159 virtual const MAKRti::DtHashList& attributeAssociations(); 00160 00162 virtual DtRegAttrAssoc* attributeAssociation( 00163 DtObjectClassHandle classHandle); 00164 00167 virtual void moveAttrToOverlap(const DtObjectRegionSet& remoteRegSet)=0; 00168 virtual void moveAttrToMatching(const DtObjectRegionSet& remoteRegSet)=0; 00169 00170 protected: 00171 00173 virtual void emptyAttrs(); 00174 00176 virtual void emptyMatches(); 00177 00179 DtObjectRegionSet* self() const; 00180 00181 DtObjectRegionSet(DtObjectRegionSet const & rhs); 00182 DtObjectRegionSet &operator=(DtObjectRegionSet const & rhs); 00183 00184 protected: 00185 00186 DtRegionSetList myOverlaps; 00187 DtRegionSetList myMatches; 00188 DtRegionSetList myMatchOverlaps; 00189 MAKRti::DtHashList myObjectAssocs; 00190 MAKRti::DtHashlist myAttrAssocs; 00191 MAKRti::DtHashlist myUnownedAttrAssocs; 00192 00195 MAKRti::DtHashList myMatchedClasses; 00196 }; 00197 00198 inline DtObjectRegionSet* DtObjectRegionSet::self() const 00199 { 00200 return const_cast<DtObjectRegionSet*>( this ); 00201 } 00202 00203 inline const MAKRti::DtHashList& DtObjectRegionSet::objectAssociations() 00204 { 00205 return myObjectAssocs; 00206 } 00207 inline const MAKRti::DtHashList& DtObjectRegionSet::objectUnownedAssociations() 00208 { 00209 return myUnownedAttrAssocs; 00210 } 00211 00212 inline const MAKRti::DtHashList& DtObjectRegionSet::attributeAssociations() 00213 { 00214 return myAttrAssocs; 00215 } 00216 00217 inline const DtRegionSetList& DtObjectRegionSet::overlapList() 00218 { 00219 return myOverlaps; 00220 } 00221 00222 inline const DtRegionSetList& DtObjectRegionSet::matchList() 00223 { 00224 return myMatches; 00225 } 00226 00227 #endif 00228 #endif