18 #ifndef itkObjectStore_h
19 #define itkObjectStore_h
62 template<
typename TObjectType >
85 typedef enum { LINEAR_GROWTH = 0, EXPONENTIAL_GROWTH = 1 } GrowthStrategyType;
88 ObjectType * Borrow();
93 void Return(ObjectType *p);
117 itkSetMacro(GrowthStrategy, GrowthStrategyType);
118 itkGetConstMacro(GrowthStrategy, GrowthStrategyType);
123 { this->SetGrowthStrategy(EXPONENTIAL_GROWTH); }
127 { this->SetGrowthStrategy(LINEAR_GROWTH); }
132 virtual
void PrintSelf(std::ostream & os,
Indent indent) const ITK_OVERRIDE;
170 #ifndef ITK_MANUAL_INSTANTIATION
171 #include "itkObjectStore.hxx"
Light weight base class for most itk classes.
Represent the size (bounds) of a n-dimensional image.
std::vector< ObjectType * > FreeListType
unsigned long SizeValueType
void SetGrowthStrategyToLinear()
SizeValueType m_LinearGrowthSize
SmartPointer< const Self > ConstPointer
MemoryBlock(SizeValueType n)
void SetGrowthStrategyToExponential()
SmartPointer< Self > Pointer
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...