Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _NMTDS_CArray1OfIndexRange_HeaderFile
00024 #define _NMTDS_CArray1OfIndexRange_HeaderFile
00025
00026 #ifndef _Standard_Address_HeaderFile
00027 #include <Standard_Address.hxx>
00028 #endif
00029 #ifndef _Standard_Integer_HeaderFile
00030 #include <Standard_Integer.hxx>
00031 #endif
00032 #ifndef _Standard_Boolean_HeaderFile
00033 #include <Standard_Boolean.hxx>
00034 #endif
00035 class Standard_OutOfRange;
00036 class Standard_OutOfMemory;
00037 class NMTDS_IndexRange;
00038
00039
00040 #ifndef _Standard_HeaderFile
00041 #include <Standard.hxx>
00042 #endif
00043 #ifndef _Standard_Macro_HeaderFile
00044 #include <Standard_Macro.hxx>
00045 #endif
00046
00047
00048 class NMTDS_CArray1OfIndexRange {
00049
00050 public:
00051
00052 void* operator new(size_t,void* anAddress)
00053 {
00054 return anAddress;
00055 }
00056 void* operator new(size_t size)
00057 {
00058 return Standard::Allocate(size);
00059 }
00060 void operator delete(void *anAddress)
00061 {
00062 if (anAddress) Standard::Free((Standard_Address&)anAddress);
00063 }
00064
00065
00066
00067
00068 Standard_EXPORT NMTDS_CArray1OfIndexRange(const Standard_Integer Length = 0,const Standard_Integer BlockLength = 5);
00069
00070
00071 Standard_EXPORT void Resize(const Standard_Integer theNewLength) ;
00072
00073
00074 Standard_EXPORT void Destroy() ;
00075 ~NMTDS_CArray1OfIndexRange()
00076 {
00077 Destroy();
00078 }
00079
00080
00081
00082 Standard_EXPORT Standard_Integer Length() const;
00083
00084
00085 Standard_EXPORT Standard_Integer Extent() const;
00086
00087
00088 Standard_EXPORT Standard_Integer FactLength() const;
00089
00090
00091 Standard_EXPORT Standard_Integer Append(const NMTDS_IndexRange& Value) ;
00092
00093
00094 Standard_EXPORT void Remove(const Standard_Integer Index) ;
00095
00096
00097 Standard_EXPORT const NMTDS_IndexRange& Value(const Standard_Integer Index) const;
00098 const NMTDS_IndexRange& operator ()(const Standard_Integer Index) const
00099 {
00100 return Value(Index);
00101 }
00102
00103
00104
00105 Standard_EXPORT NMTDS_IndexRange& ChangeValue(const Standard_Integer Index) ;
00106 NMTDS_IndexRange& operator ()(const Standard_Integer Index)
00107 {
00108 return ChangeValue(Index);
00109 }
00110
00111
00112
00113 Standard_EXPORT void SetBlockLength(const Standard_Integer aBL) ;
00114
00115
00116 Standard_EXPORT Standard_Integer BlockLength() const;
00117
00118
00119
00120
00121
00122 protected:
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132 private:
00133
00134
00135
00136
00137
00138 Standard_EXPORT NMTDS_CArray1OfIndexRange(const NMTDS_CArray1OfIndexRange& AnArray);
00139
00140
00141 Standard_EXPORT NMTDS_CArray1OfIndexRange& Assign(const NMTDS_CArray1OfIndexRange& Other) ;
00142 NMTDS_CArray1OfIndexRange& operator =(const NMTDS_CArray1OfIndexRange& Other)
00143 {
00144 return Assign(Other);
00145 }
00146
00147
00148
00149 Standard_EXPORT Standard_Boolean IsInvalidIndex(const Standard_Integer Index) const;
00150
00151
00152
00153
00154 Standard_Address myStart;
00155 Standard_Integer myLength;
00156 Standard_Integer myFactLength;
00157 Standard_Integer myBlockLength;
00158 Standard_Boolean myIsAllocated;
00159
00160
00161 };
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171 #endif