AtxIterator.h

Go to the documentation of this file.
00001 /*****************************************************************
00002 |
00003 |   Atomix - Iterator Interface
00004 |
00005 |   (c) 2002-2006 Gilles Boccon-Gibod
00006 |   Author: Gilles Boccon-Gibod (bok@bok.net)
00007 |
00008  ****************************************************************/
00013 #ifndef _ATX_ITERATOR_H_
00014 #define _ATX_ITERATOR_H_
00015 
00016 /*----------------------------------------------------------------------
00017 |   includes
00018 +---------------------------------------------------------------------*/
00019 #include "AtxInterfaces.h"
00020 #include "AtxTypes.h"
00021 
00022 /*----------------------------------------------------------------------
00023 |   error codes
00024 +---------------------------------------------------------------------*/
00025 #define ATX_ERROR_END_OF_ITERATION (ATX_ERROR_BASE_ITERATOR - 0)
00026 
00027 /*----------------------------------------------------------------------
00028 |   ATX_Iterator interface
00029 +---------------------------------------------------------------------*/
00030 ATX_DECLARE_INTERFACE(ATX_Iterator)
00040 ATX_BEGIN_INTERFACE_DEFINITION(ATX_Iterator)
00052     ATX_Result (*GetNext)(ATX_Iterator* self, ATX_Any* element);
00053 
00062     ATX_Result (*Reset)(ATX_Iterator* self);
00063 ATX_END_INTERFACE_DEFINITION
00064 
00065 /*----------------------------------------------------------------------
00066 |   convenience macros
00067 +---------------------------------------------------------------------*/
00072 #define ATX_Iterator_GetNext(self, element) \
00073 ATX_INTERFACE(self)->GetNext(self, element)
00074 
00079 #define ATX_Iterator_Reset(self) \
00080 ATX_INTERFACE(self)->Reset(self)
00081 
00082 #endif /* _ATX_ITERATOR_H_ */
00083 
00084