Array_Base.inl

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //
00003 // $Id: Array_Base.inl 80826 2008-03-04 14:51:23Z wotte $
00004 
00005 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00006 
00007 // Clean up the array (e.g., delete dynamically allocated memory).
00008 template <class T> ACE_INLINE
00009 ACE_Array_Base<T>::~ACE_Array_Base (void)
00010 {
00011   ACE_DES_ARRAY_FREE (this->array_,
00012                       this->max_size_,
00013                       this->allocator_->free,
00014                       T);
00015 }
00016 
00017 template <class T>
00018 ACE_INLINE typename ACE_Array_Base<T>::iterator
00019 ACE_Array_Base<T>::begin (void)
00020 {
00021   return this->array_;
00022 }
00023 
00024 template <class T>
00025 ACE_INLINE typename ACE_Array_Base<T>::iterator
00026 ACE_Array_Base<T>::end (void)
00027 {
00028   return this->array_ + this->cur_size_;
00029 }
00030 
00031 template <class T>
00032 ACE_INLINE typename ACE_Array_Base<T>::const_iterator
00033 ACE_Array_Base<T>::begin (void) const
00034 {
00035   return this->array_;
00036 }
00037 
00038 template <class T>
00039 ACE_INLINE typename ACE_Array_Base<T>::const_iterator
00040 ACE_Array_Base<T>::end (void) const
00041 {
00042   return this->array_ + this->cur_size_;
00043 }
00044 
00045 template <class T>
00046 ACE_INLINE typename ACE_Array_Base<T>::reverse_iterator
00047 ACE_Array_Base<T>::rbegin (void)
00048 {
00049   return reverse_iterator (this->end ());
00050 }
00051 
00052 template <class T>
00053 ACE_INLINE typename ACE_Array_Base<T>::reverse_iterator
00054 ACE_Array_Base<T>::rend (void)
00055 {
00056   return reverse_iterator (this->begin ());
00057 }
00058 
00059 template <class T>
00060 ACE_INLINE typename ACE_Array_Base<T>::const_reverse_iterator
00061 ACE_Array_Base<T>::rbegin (void) const
00062 {
00063   return const_reverse_iterator (this->end ());
00064 }
00065 
00066 template <class T>
00067 ACE_INLINE typename ACE_Array_Base<T>::const_reverse_iterator
00068 ACE_Array_Base<T>::rend (void) const
00069 {
00070   return const_reverse_iterator (this->begin ());
00071 }
00072 
00073 template <class T> ACE_INLINE typename ACE_Array_Base<T>::size_type
00074 ACE_Array_Base<T>::size (void) const
00075 {
00076   return this->cur_size_;
00077 }
00078 
00079 template <class T> ACE_INLINE typename ACE_Array_Base<T>::size_type
00080 ACE_Array_Base<T>::max_size (void) const
00081 {
00082   return this->max_size_;
00083 }
00084 
00085 template <class T> ACE_INLINE bool
00086 ACE_Array_Base<T>::in_range (typename ACE_Array_Base<T>::size_type index) const
00087 {
00088   return index < this->cur_size_;
00089 }
00090 
00091 template <class T> ACE_INLINE T &
00092 ACE_Array_Base<T>::operator[] (typename ACE_Array_Base<T>::size_type index)
00093 {
00094   return this->array_[index];
00095 }
00096 
00097 template <class T> ACE_INLINE const T &
00098 ACE_Array_Base<T>::operator[] (typename ACE_Array_Base<T>::size_type index) const
00099 {
00100   return this->array_[index];
00101 }
00102 
00103 // ****************************************************************
00104 
00105 template <class T> ACE_INLINE void
00106 ACE_Array_Iterator<T>::dump (void) const
00107 {
00108 #if defined (ACE_HAS_DUMP)
00109   // ACE_TRACE ("ACE_Array_Iterator<T>::dump");
00110 #endif /* ACE_HAS_DUMP */
00111 }
00112 
00113 template <class T> ACE_INLINE
00114 ACE_Array_Iterator<T>::ACE_Array_Iterator (ACE_Array_Base<T> &a)
00115     : current_ (0),
00116       array_ (a)
00117 {
00118   // ACE_TRACE ("ACE_Array_Iterator<T>::ACE_Array_Iterator");
00119 }
00120 
00121 template <class T> ACE_INLINE int
00122 ACE_Array_Iterator<T>::advance (void)
00123 {
00124   // ACE_TRACE ("ACE_Array_Iterator<T>::advance");
00125 
00126   if (this->current_ < array_.size ())
00127     {
00128       ++this->current_;
00129       return 1;
00130     }
00131   else
00132     {
00133       // Already finished iterating.
00134       return 0;
00135     }
00136 }
00137 
00138 template <class T> ACE_INLINE int
00139 ACE_Array_Iterator<T>::done (void) const
00140 {
00141   ACE_TRACE ("ACE_Array_Iterator<T>::done");
00142 
00143   return this->current_ >= array_.size ();
00144 }
00145 
00146 ACE_END_VERSIONED_NAMESPACE_DECL

Generated on Tue Feb 2 17:18:38 2010 for ACE by  doxygen 1.4.7