E:/gfcppsancout/product/include/gfcpp/VectorOfSharedBase.hpp

Go to the documentation of this file.
00001 
00002 #ifndef _GEMFIRE_VECTOROFSHAREDBASE_HPP_
00003 #define _GEMFIRE_VECTOROFSHAREDBASE_HPP_
00004 
00005 /*=========================================================================
00006  * (c) Copyright 2002-2007, GemStone Systems, Inc. All Rights Reserved.
00007  * 1260 NW Waterhouse Ave., Suite 200,  Beaverton, OR 97006
00008  *========================================================================
00009  */
00010 
00011 #include "gfcpp_globals.hpp"
00012 
00013 #include "SharedPtr.hpp"
00014 #ifdef BUILD_CPPCACHE
00015 #include <vector>
00016 #endif
00017 
00021 namespace gemfire {
00022 
00023 #ifdef BUILD_CPPCACHE
00024 typedef std::vector< gemfire::SharedBasePtr > VofSBP;
00025 typedef VofSBP::const_iterator VofSBPIterator;
00026 #else
00027 class VofSBP;
00028 class VofSBPIterator;
00029 #endif
00030 
00033 class CPPCACHE_EXPORT VectorOfSharedBase
00034 {
00035   private:
00036     VofSBP* m_stdvector;
00037 
00038   public:
00039 
00041     class CPPCACHE_EXPORT Iterator 
00042     {
00043       private:
00044 
00045         VofSBPIterator* m_iter;
00046 
00047         Iterator( const VofSBPIterator& iter );
00048         // Never defined.
00049         Iterator( );
00050 
00051         private:
00052           const Iterator& operator=( const Iterator& ); 
00053 
00054       public:
00055 
00056         Iterator( const Iterator& other );
00057 
00058         const SharedBasePtr operator * ( ) const;
00059 
00060         Iterator& operator ++ ( );
00061 
00062         void operator ++ ( int );
00063 
00064         bool operator == ( const Iterator& other ) const;
00065 
00066         bool operator != ( const Iterator& other ) const;
00067 
00068         ~Iterator( );
00069 
00070 
00071         friend class VectorOfSharedBase;
00072     };
00073 
00075     int32_t size( ) const;
00076 
00078     int32_t max_size( ) const;
00079 
00081     int32_t capacity( ) const;
00082 
00084     bool empty( ) const;
00085 
00087     SharedBasePtr& operator [] ( int32_t n );
00088 
00090     const SharedBasePtr& operator [] ( int32_t n ) const;
00091 
00093     SharedBasePtr& at( int32_t n );
00094 
00096     SharedBasePtr& at( int32_t n ) const;
00097 
00099     Iterator begin( ) const;
00100 
00102     Iterator end( ) const;
00103 
00105     VectorOfSharedBase( );
00106 
00108     VectorOfSharedBase( int32_t n );
00109 
00111     VectorOfSharedBase( int32_t n, const SharedBasePtr& t );
00112 
00114     VectorOfSharedBase( const VectorOfSharedBase& other );
00115 
00117     ~VectorOfSharedBase( );
00118 
00120     VectorOfSharedBase& operator = ( const VectorOfSharedBase& other );
00121 
00123     void reserve( int32_t n );
00124 
00126     SharedBasePtr& front( );
00127 
00129     const SharedBasePtr& front( ) const;
00130 
00132     SharedBasePtr& back( );
00133 
00135     const SharedBasePtr& back( ) const;
00136 
00138     void push_back( const SharedBasePtr& e );
00139 
00141     void pop_back( );
00142 
00144     void swap( VectorOfSharedBase& other );
00145 
00147     void clear( );
00148 
00152     void resize(int32_t n, const SharedBasePtr& t = NULLPTR);
00153 
00155     void insert( int32_t index, const SharedBasePtr& t );
00156 
00159     void erase( int32_t index );
00160 
00161 };
00162 
00163 }
00164 
00165 #endif
00166 

GemFire C++ Cache API Documentation