00001 /* $NoKeywords: $ */ 00002 /* 00003 // 00004 // Copyright (c) 1993-2012 Robert McNeel & Associates. All rights reserved. 00005 // OpenNURBS, Rhinoceros, and Rhino3D are registered trademarks of Robert 00006 // McNeel & Associates. 00007 // 00008 // THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. 00009 // ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF 00010 // MERCHANTABILITY ARE HEREBY DISCLAIMED. 00011 // 00012 // For complete openNURBS copyright information see <http://www.opennurbs.org>. 00013 // 00015 */ 00016 00017 #if !defined(ON_FSP_DEFS_INC_) 00018 #define ON_FSP_DEFS_INC_ 00019 00020 template <class T> 00021 ON_SimpleFixedSizePool<T>::ON_SimpleFixedSizePool() 00022 : ON_FixedSizePool() 00023 {} 00024 00025 template <class T> 00026 ON_SimpleFixedSizePool<T>::~ON_SimpleFixedSizePool() 00027 { 00028 ON_FixedSizePool::Destroy(); 00029 } 00030 00031 template <class T> 00032 bool ON_SimpleFixedSizePool<T>::Create( 00033 size_t element_count_estimate, 00034 size_t block_element_count 00035 ) 00036 { 00037 return ON_FixedSizePool::Create(sizeof(T),element_count_estimate,block_element_count); 00038 } 00039 00040 template <class T> 00041 size_t ON_SimpleFixedSizePool<T>::SizeofElement() const 00042 { 00043 return ON_FixedSizePool::SizeofElement(); 00044 } 00045 00046 template <class T> 00047 T* ON_SimpleFixedSizePool<T>::AllocateElement() 00048 { 00049 return (T *)ON_FixedSizePool::AllocateElement(); 00050 } 00051 00052 template <class T> 00053 void ON_SimpleFixedSizePool<T>::ReturnElement(T* p) 00054 { 00055 ON_FixedSizePool::ReturnElement(p); 00056 } 00057 00058 template <class T> 00059 void ON_SimpleFixedSizePool<T>::ReturnAll() 00060 { 00061 ON_FixedSizePool::ReturnAll(); 00062 } 00063 00064 template <class T> 00065 void ON_SimpleFixedSizePool<T>::Destroy() 00066 { 00067 ON_FixedSizePool::Destroy(); 00068 } 00069 00070 template <class T> 00071 size_t ON_SimpleFixedSizePool<T>::ActiveElementCount() const 00072 { 00073 return ON_FixedSizePool::ActiveElementCount(); 00074 } 00075 00076 template <class T> 00077 size_t ON_SimpleFixedSizePool<T>::TotalElementCount() const 00078 { 00079 return ON_FixedSizePool::TotalElementCount(); 00080 } 00081 00082 template <class T> 00083 T* ON_SimpleFixedSizePool<T>::FirstElement() 00084 { 00085 return (T *)ON_FixedSizePool::FirstElement(); 00086 } 00087 00088 template <class T> 00089 T* ON_SimpleFixedSizePool<T>::NextElement() 00090 { 00091 return (T *)ON_FixedSizePool::NextElement(); 00092 } 00093 00094 template <class T> 00095 T* ON_SimpleFixedSizePool<T>::FirstBlock( size_t* block_element_count ) 00096 { 00097 return (T *)ON_FixedSizePool::FirstBlock(block_element_count); 00098 } 00099 00100 template <class T> 00101 T* ON_SimpleFixedSizePool<T>::NextBlock( size_t* block_element_count ) 00102 { 00103 return (T *)ON_FixedSizePool::NextBlock(block_element_count); 00104 } 00105 00106 template <class T> 00107 T* ON_SimpleFixedSizePool<T>::Element(size_t element_index) const 00108 { 00109 return (T *)ON_FixedSizePool::Element(element_index); 00110 } 00111 00112 template <class T> 00113 void ON_SimpleFixedSizePool<T>::SetHeap( ON_MEMORY_POOL* heap ) 00114 { 00115 ON_FixedSizePool::SetHeap(heap); 00116 } 00117 00118 template <class T> 00119 ON_MEMORY_POOL* ON_SimpleFixedSizePool<T>::Heap() 00120 { 00121 return ON_FixedSizePool::Heap(); 00122 } 00123 00124 template <class T> 00125 void ON_SimpleFixedSizePool<T>::EmergencyDestroy() 00126 { 00127 ON_FixedSizePool::EmergencyDestroy(); 00128 } 00129 00130 #endif