00001 00023 #ifndef _LIBCOMPREX_FSITER_H_ 00024 #define _LIBCOMPREX_FSITER_H_ 00025 00026 #ifdef __cplusplus 00027 extern "C" { 00028 #endif 00029 00030 typedef struct _CxFsIterator CxFsIterator; 00032 typedef enum 00033 { 00034 CX_FSITER_FILES = 0, 00035 CX_FSITER_DIRS, 00036 CX_FSITER_FILES_DIRS 00038 } CxFsIteratorType; 00039 00040 #include <libcomprex/directory.h> 00041 #include <libcomprex/fsnode.h> 00042 00047 struct _CxFsIterator 00048 { 00049 CxFsIteratorType type; 00051 CxArchive *archive; 00052 CxFsNode *lastNode; 00053 }; 00054 00055 /**************************************************************************/ 00057 /**************************************************************************/ 00070 CxFsIterator *cxNewFsIterator(CxArchive *archive, CxFsIteratorType type); 00071 00079 void cxDestroyFsIterator(CxFsIterator *iterator); 00080 00084 /**************************************************************************/ 00086 /**************************************************************************/ 00099 CxFsNode *cxGetFsIterFirst(CxFsIterator *iterator); 00100 00113 CxFsNode *cxGetFsIterNext(CxFsIterator *iterator); 00114 00127 CxFsNode *cxGetFsIterPrev(CxFsIterator *iterator); 00128 00131 #ifdef __cplusplus 00132 } 00133 #endif 00134 00135 #endif /* _LIBCOMPREX_FSITER_H_ */ 00136