18 #ifndef itkObjectStore_h
19 #define itkObjectStore_h
62 template<
typename TObjectType >
87 typedef enum { LINEAR_GROWTH = 0, EXPONENTIAL_GROWTH = 1 } GrowthStrategyType;
90 ObjectType * Borrow();
95 void Return(ObjectType *p);
119 itkSetMacro(GrowthStrategy, GrowthStrategyType);
120 itkGetConstMacro(GrowthStrategy, GrowthStrategyType);
125 { this->SetGrowthStrategy(EXPONENTIAL_GROWTH); }
129 { this->SetGrowthStrategy(LINEAR_GROWTH); }
134 void PrintSelf(std::ostream & os,
Indent indent)
const override;
170 #ifndef ITK_MANUAL_INSTANTIATION
171 #include "itkObjectStore.hxx"
Light weight base class for most itk classes.
std::vector< ObjectType * > FreeListType
unsigned long SizeValueType
void SetGrowthStrategyToLinear()
SizeValueType m_LinearGrowthSize
Represent a n-dimensional size (bounds) of a n-dimensional image.
MemoryBlock(SizeValueType n)
void SetGrowthStrategyToExponential()
GrowthStrategyType m_GrowthStrategy
std::vector< MemoryBlock > m_Store
Control indentation during Print() invocation.
Base class for most ITK classes.
A specialized memory management object for allocating and destroying contiguous blocks of objects...