00001 // -*- C++ -*- 00002 // 00003 // Array_Base.inl,v 4.3 2005/10/28 16:14:51 ossama Exp 00004 00005 // Clean up the array (e.g., delete dynamically allocated memory). 00006 00007 ACE_BEGIN_VERSIONED_NAMESPACE_DECL 00008 00009 template <class T> ACE_INLINE 00010 ACE_Array_Base<T>::~ACE_Array_Base (void) 00011 { 00012 ACE_DES_ARRAY_FREE (this->array_, 00013 this->max_size_, 00014 this->allocator_->free, 00015 T); 00016 } 00017 00018 template <class T> ACE_INLINE size_t 00019 ACE_Array_Base<T>::size (void) const 00020 { 00021 return this->cur_size_; 00022 } 00023 00024 template <class T> ACE_INLINE size_t 00025 ACE_Array_Base<T>::max_size (void) const 00026 { 00027 return this->max_size_; 00028 } 00029 00030 template <class T> ACE_INLINE int 00031 ACE_Array_Base<T>::in_range (size_t index) const 00032 { 00033 return index < this->cur_size_; 00034 } 00035 00036 template <class T> ACE_INLINE T & 00037 ACE_Array_Base<T>::operator[] (size_t index) 00038 { 00039 return this->array_[index]; 00040 } 00041 00042 template <class T> ACE_INLINE const T & 00043 ACE_Array_Base<T>::operator[] (size_t index) const 00044 { 00045 return this->array_[index]; 00046 } 00047 00048 // **************************************************************** 00049 00050 template <class T> ACE_INLINE void 00051 ACE_Array_Iterator<T>::dump (void) const 00052 { 00053 #if defined (ACE_HAS_DUMP) 00054 // ACE_TRACE ("ACE_Array_Iterator<T>::dump"); 00055 #endif /* ACE_HAS_DUMP */ 00056 } 00057 00058 template <class T> ACE_INLINE 00059 ACE_Array_Iterator<T>::ACE_Array_Iterator (ACE_Array_Base<T> &a) 00060 : current_ (0), 00061 array_ (a) 00062 { 00063 // ACE_TRACE ("ACE_Array_Iterator<T>::ACE_Array_Iterator"); 00064 } 00065 00066 template <class T> ACE_INLINE int 00067 ACE_Array_Iterator<T>::advance (void) 00068 { 00069 // ACE_TRACE ("ACE_Array_Iterator<T>::advance"); 00070 00071 if (this->current_ < array_.size ()) 00072 { 00073 ++this->current_; 00074 return 1; 00075 } 00076 else 00077 { 00078 // Already finished iterating. 00079 return 0; 00080 } 00081 } 00082 00083 template <class T> ACE_INLINE int 00084 ACE_Array_Iterator<T>::done (void) const 00085 { 00086 ACE_TRACE ("ACE_Array_Iterator<T>::done"); 00087 00088 return this->current_ >= array_.size (); 00089 } 00090 00091 ACE_END_VERSIONED_NAMESPACE_DECL