12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
-
- #ifndef cmDList_h
- #define cmDList_h
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- enum
- {
- kOkDlRC = cmOkRC,
- kDuplicateIndexIdDlRC,
- kInvalidIndexDlRC,
- kIterNotFoundDlRC,
- kDataRecdNotFoundDlRC,
-
- };
-
- typedef unsigned cmDlRC_t;
- typedef cmHandle_t cmDListH_t;
- typedef cmHandle_t cmDListIterH_t;
-
- extern cmDListH_t cmDListNullHandle;
- extern cmDListIterH_t cmDListIterNullHandle;
-
- // Return < 0 if v0 < v1
- // == 0 if v0 == v1
- // > 0 if v0 > v1
- typedef int (*cmDListCmpFunc_t)( void* arg, const void* v0, unsigned v0N, const void* v1, unsigned v1N );
-
- typedef void (*cmDListIndexFreeFunc_t)( unsigned indexId, void* arg );
-
- // If 'f' is not NULL then a default index with an indexId==0 will be automatically created.
- cmDlRC_t cmDListAlloc( cmCtx_t* ctx, cmDListH_t* hp, cmDListCmpFunc_t f, void* farg );
- cmDlRC_t cmDListFree( cmDListH_t* hp );
- bool cmDListIsValid( cmDListH_t h );
- cmDlRC_t cmDListInsert( cmDListH_t h, const void* recd, unsigned recdByteN );
- cmDlRC_t cmDListDelete( cmDListH_t h, const void* recd );
-
-
- cmDlRC_t cmDListIndexAlloc( cmDListH_t h, unsigned indexId, cmDListCmpFunc_t f, void* farg );
- cmDlRC_t cmDListIndexFree( cmDListH_t h, unsigned indexId );
- cmDlRC_t cmDListIndexSetFreeFunc(cmDListH_t h, unsigned indexId, cmDListIndexFreeFunc_t func );
-
-
- cmDlRC_t cmDListIterAlloc( cmDListH_t h, cmDListIterH_t* iHp, unsigned indexId );
- cmDlRC_t cmDListIterFree( cmDListIterH_t* iHp );
- bool cmDListIterIsValid( cmDListIterH_t iH );
- cmDlRC_t cmDListIterSeekBegin( cmDListIterH_t iH );
- cmDlRC_t cmDListIterSeekEnd( cmDListIterH_t iH );
- const void* cmDListIterGet( cmDListIterH_t iH, unsigned* recdByteNRef );
- const void* cmDListIterPrev( cmDListIterH_t iH, unsigned* recdByteNRef );
- const void* cmDListIterNext( cmDListIterH_t iH, unsigned* recdByteNRef );
- const void* cmDListIterFind( cmDListIterH_t iH, const void* key, unsigned keyN, unsigned* recdByteNRef);
-
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif
|