/*-------------------------------------------------------------*/
/***************************************************************
* A netwib_dir permits to loop through all filenames in a *
* directory. *
***************************************************************/
/*-------------------------------------------------------------*/
typedef struct netwib_dir netwib_dir;
/*-------------------------------------------------------------*/
/* Name : netwib_dir_init
Description :
Open a directory.
Input parameter(s) :
*pdirname : directory name
Input/output parameter(s) :
Output parameter(s) :
**ppdir : netwib_dir initialized
Normal return values :
NETWIB_ERR_OK : ok
*/
netwib_err netwib_dir_init(netwib_constbuf *pdirname,
netwib_dir **ppdir);
/*-------------------------------------------------------------*/
/* Name : netwib_dir_close
Description :
Close a netwib_dir.
Input parameter(s) :
Input/output parameter(s) :
**ppdir : netwib_dir closed
Output parameter(s) :
Normal return values :
NETWIB_ERR_OK : ok
*/
netwib_err netwib_dir_close(netwib_dir **ppdir);
/*-------------------------------------------------------------*/
/* Types to control a netwib_dir */
typedef enum {
NETWIB_DIR_CTLTYPE_REWIND = 1 /* position at beginning */
} netwib_dir_ctltype;
netwib_err netwib_dir_ctl_set(netwib_dir *pdir,
netwib_dir_ctltype type,
netwib_ptr p,
netwib_uint32 ui);
netwib_err netwib_dir_ctl_get(netwib_dir *pdir,
netwib_dir_ctltype type,
netwib_ptr p,
netwib_uint32 *pui);
/*-------------------------------------------------------------*/
/* netwib_err f(netwib_dir *pdir); */
#define netwib_dir_ctl_set_rewind(pdir) netwib_dir_ctl_set(pdir,NETWIB_DIR_CTLTYPE_REWIND,NULL,0)
/*-------------------------------------------------------------*/
/* Name : netwib_dir_next
Description :
Obtain the next file of a netwib_dir.
Input parameter(s) :
Input/output parameter(s) :
**ppdir : netwib_dir
pbuffilename : buffer containing the filename
Output parameter(s) :
Normal return values :
NETWIB_ERR_OK : ok
Notes :
If directory files change between two calls,
the next result might be incorrect, but it will not crash.
*/
netwib_err netwib_dir_next(netwib_dir *pdir,
netwib_buf *pbuffilename);