00001
00002
00003
00004
00005
00006
00008
00010
00011
00012
00013 #ifndef _seIterator_h
00014 #define _seIterator_h
00015
00021 #include "seObject.h"
00022
00023 namespace sedris {
00024
00025 class IInterface;
00026 class IIterator;
00027
00028
00033 class EXPORT_DLL seIterator
00034 {
00035 public:
00037 seIterator() : _impl(NULL), _ownr(NULL)
00038 {
00039 }
00040
00042 seIterator( const seIterator &other );
00043
00045 virtual ~seIterator()
00046 {
00047 if (isValid())
00048 release();
00049 }
00050
00058 seIterator &operator =( const seIterator &other );
00059
00063 virtual bool operator ==( const seIterator &other ) const;
00064
00068 virtual bool isValid() const
00069 {
00070 return (_impl != NULL);
00071 }
00072
00083 virtual bool isCompleted();
00084
00139 virtual unsigned int getCount( SE_DRM_Class filter = SE_DRM_CLS_NULL );
00140
00219 virtual bool getNext( seObject &obj, seObject &link_obj );
00220
00227 virtual bool getNext( seObject &obj );
00228
00240 virtual bool getNthNext( unsigned int nth, seObject &obj,
00241 seObject &link_obj );
00242
00258 virtual bool getNthNext( unsigned int nth, seObject &obj );
00259
00265 virtual void release();
00266
00267 private:
00268
00269 SE_HANDLE_DECL(Iterator, Interface)
00270 };
00271
00272
00273 }
00274
00275 #endif // _seIterator_h