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
00170
00171
00172
00173
00174
00175
00176
00177
00178