27#include "hdrl_types.h"
43#if defined HDRL_USE_EXPERIMENTAL || defined HDRL_USE_PRIVATE
46typedef struct _hdrl_iter_ hdrl_iter;
49 HDRL_ITER_IMAGELIST = 1<<0,
51 HDRL_ITER_IMAGE = 1<<1,
53 HDRL_ITER_INPUT = 1<<2,
55 HDRL_ITER_OUTPUT = 1<<3,
57 HDRL_ITER_OWNS_DATA = 1<<4,
59 HDRL_ITER_CONST = 1<<5,
61 HDRL_ITER_ALLOW_EMPTY = 1<<6,
64void * hdrl_iter_next(hdrl_iter * it);
65cpl_size hdrl_iter_length(hdrl_iter * it);
66void hdrl_iter_reset(hdrl_iter * it);
67void hdrl_iter_delete(hdrl_iter * it);
76#ifdef HDRL_USE_PRIVATE
79typedef void * (hdrl_iter_next_f)(hdrl_iter * it);
80typedef void (hdrl_iter_reset_f)(hdrl_iter * it);
81typedef cpl_size (hdrl_iter_length_f)(hdrl_iter * it);
84hdrl_iter_init(hdrl_iter_next_f * next,
85 hdrl_iter_reset_f * reset,
86 hdrl_iter_length_f * length,
87 hdrl_free * destructor,
88 hdrl_iter_flags flags,
91void * hdrl_iter_state(
const hdrl_iter * it);
93cpl_boolean hdrl_iter_check(hdrl_iter * it, hdrl_iter_flags flags);