1
0
Fork 0

Follow coding style guidelines a bit more. Add nrUsed count.

This commit is contained in:
Max Neunhoeffer 2013-11-18 16:46:56 +01:00
parent e3c0059211
commit c8b8af36b2
2 changed files with 42 additions and 36 deletions

View File

@ -45,7 +45,7 @@
/// @brief Select a node height randomly
////////////////////////////////////////////////////////////////////////////////
static int TRI_random_height(void)
static int TRI_random_height (void)
{
uint32_t r;
int height = 1;
@ -65,7 +65,7 @@ static int TRI_random_height(void)
/// random height is taken.
////////////////////////////////////////////////////////////////////////////////
static TRI_skiplist_node_t* TRI_SkipListAllocNode(TRI_skiplist_t* sl,
static TRI_skiplist_node_t* TRI_SkipListAllocNode (TRI_skiplist_t* sl,
int height) {
TRI_skiplist_node_t* new;
new = (TRI_skiplist_node_t*) malloc(sizeof(TRI_skiplist_node_t));
@ -96,7 +96,7 @@ static TRI_skiplist_node_t* TRI_SkipListAllocNode(TRI_skiplist_t* sl,
/// @brief Free function for a node.
////////////////////////////////////////////////////////////////////////////////
static void TRI_SkipListFreeNode(TRI_skiplist_node_t* node) {
static void TRI_SkipListFreeNode (TRI_skiplist_node_t* node) {
TRI_Free(TRI_UNKNOWN_MEM_ZONE,node->next);
TRI_Free(TRI_UNKNOWN_MEM_ZONE,node);
}
@ -117,7 +117,7 @@ static void TRI_SkipListFreeNode(TRI_skiplist_node_t* node) {
// lev.
//
static int LookupLess(TRI_skiplist_t *sl,
static int LookupLess (TRI_skiplist_t *sl,
void *doc,
TRI_skiplist_node_t* (*pos)[TRI_SKIPLIST_MAX_HEIGHT],
TRI_skiplist_node_t** next,
@ -160,7 +160,7 @@ static int LookupLess(TRI_skiplist_t *sl,
// that have height > lev.
//
static int LookupLessOrEq(TRI_skiplist_t *sl,
static int LookupLessOrEq (TRI_skiplist_t *sl,
void *doc,
TRI_skiplist_node_t* (*pos)[TRI_SKIPLIST_MAX_HEIGHT],
TRI_skiplist_node_t** next,
@ -211,7 +211,7 @@ static int LookupLessOrEq(TRI_skiplist_t *sl,
/// otherwise.
////////////////////////////////////////////////////////////////////////////////
TRI_skiplist_t* TRI_InitSkipList(TRI_skiplist_compare_func_t cmpfunc,
TRI_skiplist_t* TRI_InitSkipList (TRI_skiplist_compare_func_t cmpfunc,
TRI_skiplist_free_func_t freefunc,
bool unique) {
TRI_skiplist_t* sl;
@ -233,6 +233,7 @@ TRI_skiplist_t* TRI_InitSkipList(TRI_skiplist_compare_func_t cmpfunc,
sl->compare = cmpfunc;
sl->free = freefunc;
sl->unique = unique;
sl->nrUsed = 0;
return sl;
}
@ -242,7 +243,7 @@ TRI_skiplist_t* TRI_InitSkipList(TRI_skiplist_compare_func_t cmpfunc,
/// @brief frees a skiplist and all its documents
////////////////////////////////////////////////////////////////////////////////
void TRI_FreeSkipList(TRI_skiplist_t* sl) {
void TRI_FreeSkipList (TRI_skiplist_t* sl) {
TRI_skiplist_node_t* p;
TRI_skiplist_node_t* next;
@ -264,7 +265,7 @@ void TRI_FreeSkipList(TRI_skiplist_t* sl) {
/// @brief return the start node
////////////////////////////////////////////////////////////////////////////////
TRI_skiplist_node_t* TRI_SkipListStartNode(TRI_skiplist_t* sl) {
TRI_skiplist_node_t* TRI_SkipListStartNode (TRI_skiplist_t* sl) {
return sl->start;
}
@ -272,7 +273,7 @@ TRI_skiplist_node_t* TRI_SkipListStartNode(TRI_skiplist_t* sl) {
/// @brief return the successor node or NULL if last node
////////////////////////////////////////////////////////////////////////////////
TRI_skiplist_node_t* TRI_SkipListNextNode(TRI_skiplist_node_t* node) {
TRI_skiplist_node_t* TRI_SkipListNextNode (TRI_skiplist_node_t* node) {
return node->next[0];
}
@ -289,7 +290,7 @@ TRI_skiplist_node_t* TRI_SkipListNextNode(TRI_skiplist_node_t* node) {
/// total order. In the latter two cases nothing is inserted.
////////////////////////////////////////////////////////////////////////////////
int TRI_SkipListInsert(TRI_skiplist_t *sl, void *doc) {
int TRI_SkipListInsert (TRI_skiplist_t *sl, void *doc) {
int lev;
TRI_skiplist_node_t* pos[TRI_SKIPLIST_MAX_HEIGHT];
TRI_skiplist_node_t* next = NULL; // to please the compiler
@ -341,6 +342,8 @@ int TRI_SkipListInsert(TRI_skiplist_t *sl, void *doc) {
pos[lev]->next[lev] = new;
}
sl->nrUsed++;
return TRI_ERROR_NO_ERROR;
}
@ -354,7 +357,7 @@ int TRI_SkipListInsert(TRI_skiplist_t *sl, void *doc) {
/// In the latter two cases nothing is removed.
////////////////////////////////////////////////////////////////////////////////
int TRI_SkipListRemove(TRI_skiplist_t *sl, void *doc) {
int TRI_SkipListRemove (TRI_skiplist_t *sl, void *doc) {
int lev;
TRI_skiplist_node_t* pos[TRI_SKIPLIST_MAX_HEIGHT];
TRI_skiplist_node_t* next = NULL; // to please the compiler
@ -385,6 +388,8 @@ int TRI_SkipListRemove(TRI_skiplist_t *sl, void *doc) {
TRI_SkipListFreeNode(next);
sl->nrUsed--;
return TRI_ERROR_NO_ERROR;
}
@ -396,7 +401,7 @@ int TRI_SkipListRemove(TRI_skiplist_t *sl, void *doc) {
/// Only comparisons using the preorder are done.
////////////////////////////////////////////////////////////////////////////////
TRI_skiplist_node_t* TRI_SkipListLeftLookup(TRI_skiplist_t *sl, void *doc) {
TRI_skiplist_node_t* TRI_SkipListLeftLookup (TRI_skiplist_t *sl, void *doc) {
TRI_skiplist_node_t* pos[TRI_SKIPLIST_MAX_HEIGHT];
TRI_skiplist_node_t* next;
@ -415,7 +420,7 @@ TRI_skiplist_node_t* TRI_SkipListLeftLookup(TRI_skiplist_t *sl, void *doc) {
/// Only comparisons using the preorder are done.
////////////////////////////////////////////////////////////////////////////////
TRI_skiplist_node_t* TRI_SkipListRightLookup(TRI_skiplist_t *sl, void *doc) {
TRI_skiplist_node_t* TRI_SkipListRightLookup (TRI_skiplist_t *sl, void *doc) {
TRI_skiplist_node_t* pos[TRI_SKIPLIST_MAX_HEIGHT];
TRI_skiplist_node_t* next;
@ -436,7 +441,7 @@ TRI_skiplist_node_t* TRI_SkipListRightLookup(TRI_skiplist_t *sl, void *doc) {
/// if doc is not in the skiplist.
////////////////////////////////////////////////////////////////////////////////
TRI_skiplist_node_t* TRI_SkipListLookup(TRI_skiplist_t *sl, void *doc) {
TRI_skiplist_node_t* TRI_SkipListLookup (TRI_skiplist_t *sl, void *doc) {
TRI_skiplist_node_t* pos[TRI_SKIPLIST_MAX_HEIGHT];
TRI_skiplist_node_t* next = NULL; // to please the compiler
int cmp;

View File

@ -100,6 +100,7 @@ typedef struct TRI_skiplist_s {
TRI_skiplist_free_func_t free;
bool unique; // indicates whether multiple entries that
// are equal in the preorder are allowed in
uint64_t nrUsed;
} TRI_skiplist_t;
@ -124,7 +125,7 @@ typedef struct TRI_skiplist_s {
/// otherwise.
////////////////////////////////////////////////////////////////////////////////
TRI_skiplist_t* TRI_InitSkipList(TRI_skiplist_compare_func_t cmpfunc,
TRI_skiplist_t* TRI_InitSkipList (TRI_skiplist_compare_func_t cmpfunc,
TRI_skiplist_free_func_t freefunc,
bool unique);
@ -132,7 +133,7 @@ TRI_skiplist_t* TRI_InitSkipList(TRI_skiplist_compare_func_t cmpfunc,
/// @brief frees a skiplist and all its documents
////////////////////////////////////////////////////////////////////////////////
void TRI_FreeSkipList(TRI_skiplist_t* sl);
void TRI_FreeSkipList (TRI_skiplist_t* sl);
////////////////////////////////////////////////////////////////////////////////
@ -152,13 +153,13 @@ void TRI_FreeSkipList(TRI_skiplist_t* sl);
/// @brief return the start node
////////////////////////////////////////////////////////////////////////////////
TRI_skiplist_node_t* TRI_SkipListStartNode(TRI_skiplist_t* sl);
TRI_skiplist_node_t* TRI_SkipListStartNode (TRI_skiplist_t* sl);
////////////////////////////////////////////////////////////////////////////////
/// @brief return the successor node or NULL if last node
////////////////////////////////////////////////////////////////////////////////
TRI_skiplist_node_t* TRI_SkipListNextNode(TRI_skiplist_node_t* node);
TRI_skiplist_node_t* TRI_SkipListNextNode (TRI_skiplist_node_t* node);
////////////////////////////////////////////////////////////////////////////////
/// @brief inserts a new document into a skiplist
@ -170,7 +171,7 @@ TRI_skiplist_node_t* TRI_SkipListNextNode(TRI_skiplist_node_t* node);
/// insert. In the latter two cases nothing is inserted.
////////////////////////////////////////////////////////////////////////////////
int TRI_SkipListInsert(TRI_skiplist_t *sl, void *doc);
int TRI_SkipListInsert (TRI_skiplist_t *sl, void *doc);
////////////////////////////////////////////////////////////////////////////////
/// @brief removes a document from a skiplist
@ -180,7 +181,7 @@ int TRI_SkipListInsert(TRI_skiplist_t *sl, void *doc);
/// cases nothing is inserted.
////////////////////////////////////////////////////////////////////////////////
int TRI_SkipListRemove(TRI_skiplist_t *sl, void *doc);
int TRI_SkipListRemove (TRI_skiplist_t *sl, void *doc);
////////////////////////////////////////////////////////////////////////////////
/// @brief finds the last document that is less to doc in the preorder
@ -189,7 +190,7 @@ int TRI_SkipListRemove(TRI_skiplist_t *sl, void *doc);
/// Only comparisons using the preorder are done.
////////////////////////////////////////////////////////////////////////////////
TRI_skiplist_node_t* TRI_SkipListLeftLookup(TRI_skiplist_t *sl, void *doc);
TRI_skiplist_node_t* TRI_SkipListLeftLookup (TRI_skiplist_t *sl, void *doc);
////////////////////////////////////////////////////////////////////////////////
/// @brief finds the last document that is less or equal to doc in
@ -198,7 +199,7 @@ TRI_skiplist_node_t* TRI_SkipListLeftLookup(TRI_skiplist_t *sl, void *doc);
/// Only comparisons using the preorder are done.
////////////////////////////////////////////////////////////////////////////////
TRI_skiplist_node_t* TRI_SkipListRightLookup(TRI_skiplist_t *sl, void *doc);
TRI_skiplist_node_t* TRI_SkipListRightLookup (TRI_skiplist_t *sl, void *doc);
////////////////////////////////////////////////////////////////////////////////
/// @brief looks up doc in the skiplist using the proper order
@ -208,7 +209,7 @@ TRI_skiplist_node_t* TRI_SkipListRightLookup(TRI_skiplist_t *sl, void *doc);
/// if doc is not in the skiplist.
////////////////////////////////////////////////////////////////////////////////
TRI_skiplist_node_t* TRI_SkipListLookup(TRI_skiplist_t *sl, void *doc);
TRI_skiplist_node_t* TRI_SkipListLookup (TRI_skiplist_t *sl, void *doc);
////////////////////////////////////////////////////////////////////////////////
/// @}