00001 #if !defined(__ITERATOR_HPP)
00002 #define __ITERATOR_HPP
00003
00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019 00020 00021 00022
00023
00024 #if !defined(__COMMON_HPP)
00025 #include <Common.hpp>
00026 #endif
00027
00028 #include <IteratorBoundsException.hpp>
00029
00030 namespace corelinux
00031 {
00032
00033 DECLARE_CLASS( IteratorBoundsException );
00034 DECLARE_CLASS( InvalidIteratorException );
00035
00043 template< class ElementType >
00044 class Iterator : public CoreLinuxObject
00045 {
00046 public:
00047
00048
00049
00050
00051
00053
00054 Iterator( void )
00055 :
00056 CoreLinuxObject()
00057 {
00058 ;
00059 }
00060
00066 Iterator( const Iterator &aRef )
00067 :
00068 CoreLinuxObject( aRef )
00069 {
00070 ;
00071 }
00072
00074
00075 virtual ~Iterator( void )
00076 {
00077 ;
00078 }
00079
00080
00081
00082
00083
00090 Iterator & operator=( const Iterator & )
00091 {
00092 return (*this);
00093 }
00094
00101 bool operator==( const Iterator & aRef ) const
00102 {
00103 return (this == &aRef);
00104 }
00105
00106
00107
00108
00109 00117 virtual bool isValid( void ) const = 0;
00118
00127 virtual ElementType getElement( void )
00128 const throw(IteratorBoundsException) = 0;
00129
00130
00131
00132
00133
00135
00136 virtual void setFirst( void ) = 0;
00137
00144 virtual void setNext( void )
00145 throw(IteratorBoundsException) = 0;
00146
00153 virtual void setPrevious( void )
00154 throw(IteratorBoundsException) = 0;
00155
00162 virtual void setLast( void )
00163 throw(IteratorBoundsException) = 0;
00164
00165
00166 };
00167 }
00168
00169 #endif // if !defined(__ITERATOR_HPP)
00170
00171 00172 00173 00174 00175 00176 00177
00178