31 #ifndef reda_indexer_h
32 #define reda_indexer_h
48 struct REDA_IndexIterator;
50 typedef struct REDA_IndexIterator REDA_IndexIterator_T;
55 typedef struct REDA_Indexer REDA_Indexer_T;
60 struct REDA_IndexerProperty
65 RTI_INT32 max_entries;
72 #define REDA_IndexerProperty_INITIALIZER \
93 FUNCTION_MUST_TYPEDEF(
95 (*REDA_Indexer_compare_T)(
const void *
const record, RTI_BOOL key_is_record,
96 const void *
const key)
113 MUST_CHECK_RETURN REDADllExport REDA_Indexer_T*
114 REDA_Indexer_new(REDA_Indexer_compare_T compare,
115 struct REDA_IndexerProperty *property);
133 SHOULD_CHECK_RETURN REDADllExport RTI_BOOL
134 REDA_Indexer_delete(REDA_Indexer_T *indexer);
152 MUST_CHECK_RETURN REDADllExport RTI_BOOL
153 REDA_Indexer_add_entry(REDA_Indexer_T *indexer,
void *entry);
170 SHOULD_CHECK_RETURN REDADllExport
void*
171 REDA_Indexer_remove_entry(REDA_Indexer_T *indexer,
const void *
const key);
187 MUST_CHECK_RETURN REDADllExport
void*
188 REDA_Indexer_find_entry(REDA_Indexer_T *indexer,
const void *
const key);
204 MUST_CHECK_RETURN REDADllExport
void*
205 REDA_Indexer_find_entry_eq_or_gt(REDA_Indexer_T *indexer,
const void *
const key);
221 MUST_CHECK_RETURN REDADllExport
void*
222 REDA_Indexer_find_entry_eq_or_lt(REDA_Indexer_T *indexer,
const void *
const key);
238 MUST_CHECK_RETURN REDADllExport RTI_INT32
239 REDA_Indexer_get_count(REDA_Indexer_T *indexer);
255 MUST_CHECK_RETURN REDADllExport
void*
256 REDA_Indexer_get_entry(REDA_Indexer_T *indexer,RTI_INT32 index);
271 MUST_CHECK_RETURN REDADllExport
void*
272 REDA_Indexer_get_first_entry(REDA_Indexer_T *indexer);
287 MUST_CHECK_RETURN REDADllExport
void*
288 REDA_Indexer_get_last_entry(REDA_Indexer_T *indexer);
304 REDADllExport REDA_IndexIterator_T*
305 REDA_Indexer_iterator_begin(REDA_Indexer_T *indexer);
327 MUST_CHECK_RETURN REDADllExport
void*
328 REDA_Indexer_iterator_next(REDA_IndexIterator_T *iterator);