Skip to content

Commit

Permalink
name change, _by_obj => obj
Browse files Browse the repository at this point in the history
  • Loading branch information
wolkykim committed Jul 24, 2023
1 parent 58568ea commit 856193a
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 52 deletions.
42 changes: 18 additions & 24 deletions include/qlibc/containers/qtreetbl.h
Original file line number Diff line number Diff line change
Expand Up @@ -71,23 +71,19 @@ extern bool qtreetbl_put(qtreetbl_t *tbl, const char *name, const void *data,
extern bool qtreetbl_putstr(qtreetbl_t *tbl, const char *name, const char *str);
extern bool qtreetbl_putstrf(qtreetbl_t *tbl, const char *name,
const char *format, ...);
extern bool qtreetbl_put_by_obj(qtreetbl_t *tbl, const void *name,
size_t namesize, const void *data,
size_t datasize);
extern bool qtreetbl_putobj(qtreetbl_t *tbl, const void *name, size_t namesize,
const void *data, size_t datasize);

extern void *qtreetbl_get(qtreetbl_t *tbl, const char *name, size_t *datasize,
bool newmem);
extern char *qtreetbl_getstr(qtreetbl_t *tbl, const char *name,
const bool newmem);
extern void *qtreetbl_get_by_obj(qtreetbl_t *tbl, const char *name,
size_t namesize, size_t *datasize, bool newmem);
extern void *qtreetbl_get(qtreetbl_t *tbl,
const char *name, size_t *datasize, bool newmem);
extern char *qtreetbl_getstr(qtreetbl_t *tbl, const char *name, const bool newmem);
extern void *qtreetbl_getobj(qtreetbl_t *tbl, const char *name, size_t namesize,
size_t *datasize, bool newmem);

extern bool qtreetbl_remove(qtreetbl_t *tbl, const char *name);
extern bool qtreetbl_remove_by_obj(qtreetbl_t *tbl, const void *name,
size_t namesize);
extern bool qtreetbl_removeobj(qtreetbl_t *tbl, const void *name, size_t namesize);

extern bool qtreetbl_getnext(qtreetbl_t *tbl, qtreetbl_obj_t *obj,
const bool newmem);
extern bool qtreetbl_getnext(qtreetbl_t *tbl, qtreetbl_obj_t *obj, const bool newmem);

extern void *qtreetbl_find_min(qtreetbl_t *tbl, size_t *namesize);
extern void *qtreetbl_find_max(qtreetbl_t *tbl, size_t *namesize);
Expand All @@ -112,25 +108,23 @@ extern int qtreetbl_check(qtreetbl_t *tbl);
*/
struct qtreetbl_s {
/* encapsulated member functions */
void (*set_compare)(
qtreetbl_t *tbl,
int (*cmp)(const void *name1, size_t namesize1, const void *name2,
size_t namesize2));
bool (*put)(qtreetbl_t *tbl, const char *name, const void *data,
size_t size);
void (*set_compare)(qtreetbl_t *tbl,
int (*cmp)(const void *name1, size_t namesize1, const void *name2,
size_t namesize2));
bool (*put)(qtreetbl_t *tbl, const char *name, const void *data, size_t size);
bool (*putstr)(qtreetbl_t *tbl, const char *name, const char *str);
bool (*putstrf)(qtreetbl_t *tbl, const char *name, const char *format, ...);
bool (*put_by_obj)(qtreetbl_t *tbl, const void *name, size_t namesize,
const void *data, size_t datasize);
bool (*putobj)(qtreetbl_t *tbl, const void *name, size_t namesize,
const void *data, size_t datasize);

void *(*get)(qtreetbl_t *tbl, const char *name, size_t *datasize,
bool newmem);
char *(*getstr)(qtreetbl_t *tbl, const char *name, bool newmem);
void *(*get_by_obj)(qtreetbl_t *tbl, const char *name, size_t namesize,
size_t *datasize, bool newmem);
void *(*getobj)(qtreetbl_t *tbl, const char *name, size_t namesize,
size_t *datasize, bool newmem);

bool (*remove)(qtreetbl_t *tbl, const char *name);
bool (*remove_by_obj)(qtreetbl_t *tbl, const void *name, size_t namesize);
bool (*removeobj)(qtreetbl_t *tbl, const void *name, size_t namesize);

bool (*getnext)(qtreetbl_t *tbl, qtreetbl_obj_t *obj, const bool newmem);

Expand Down
52 changes: 24 additions & 28 deletions src/containers/qtreetbl.c
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,8 @@
* @code
* qtreetbl_t *tbl = qtreetbl(QTREETBL_THREADSAFE);
*
* tbl->put(tbl, "KEY", "DATA", 4); // use put_by_obj() for binary keys.
* void *data = tbl->get(tbl, "KEY", false); // use get_by_obj() for binary keys.
* tbl->put(tbl, "KEY", "DATA", 4); // use putobj() for binary keys.
* void *data = tbl->get(tbl, "KEY", false); // use getobj() for binary keys.
* tbl->remove(tbl, "KEY"); // use remove_by_key() for binary keys.
*
* // iteration example
Expand Down Expand Up @@ -198,15 +198,14 @@ qtreetbl_t *qtreetbl(int options) {
tbl->put = qtreetbl_put;
tbl->putstr = qtreetbl_putstr;
tbl->putstrf = qtreetbl_putstrf;
tbl->put_by_obj = qtreetbl_put_by_obj;
tbl->putobj = qtreetbl_putobj;

tbl->get = qtreetbl_get;
tbl->getstr = qtreetbl_getstr;
//tbl->getint = qtreetbl_getint;
tbl->get_by_obj = qtreetbl_get_by_obj;
tbl->getobj = qtreetbl_getobj;

tbl->remove = qtreetbl_remove;
tbl->remove_by_obj = qtreetbl_remove_by_obj;
tbl->removeobj = qtreetbl_removeobj;

tbl->getnext = qtreetbl_getnext;

Expand Down Expand Up @@ -271,9 +270,8 @@ void qtreetbl_set_compare(
*/
bool qtreetbl_put(qtreetbl_t *tbl, const char *name, const void *data,
size_t datasize) {
return qtreetbl_put_by_obj(tbl, name,
(name != NULL) ? (strlen(name) + 1) : 0, data,
datasize);
return qtreetbl_putobj(tbl,
name, (name != NULL) ? (strlen(name) + 1) : 0, data, datasize);
}

/**
Expand All @@ -289,9 +287,9 @@ bool qtreetbl_put(qtreetbl_t *tbl, const char *name, const void *data,
* - ENOMEM : Memory allocation failure.
*/
bool qtreetbl_putstr(qtreetbl_t *tbl, const char *name, const char *str) {
return qtreetbl_put_by_obj(tbl, name,
(name != NULL) ? (strlen(name) + 1) : 0, str,
(str != NULL) ? (strlen(str) + 1) : 0);
return qtreetbl_putobj(tbl,
name, (name != NULL) ? (strlen(name) + 1) : 0,
str, (str != NULL) ? (strlen(str) + 1) : 0);
}

/**
Expand Down Expand Up @@ -321,7 +319,7 @@ bool qtreetbl_putstrf(qtreetbl_t *tbl, const char *name, const char *format,
}

/**
* qtreetbl->put_by_obj(): Put an object data into this table with an object name.
* qtreetbl->putobj(): Put an object data into this table with an object key.
*
* @param tbl qtreetbl_t container pointer.
* @param name key name.
Expand All @@ -337,8 +335,8 @@ bool qtreetbl_putstrf(qtreetbl_t *tbl, const char *name, const char *format,
* @note
* This is the underlying put function which all other put methods use.
*/
bool qtreetbl_put_by_obj(qtreetbl_t *tbl, const void *name, size_t namesize,
const void *data, size_t datasize) {
bool qtreetbl_putobj(qtreetbl_t *tbl, const void *name, size_t namesize,
const void *data, size_t datasize) {
if (name == NULL || namesize == 0 || data == NULL || datasize == 0) {
errno = EINVAL;
return false;
Expand Down Expand Up @@ -395,9 +393,8 @@ bool qtreetbl_put_by_obj(qtreetbl_t *tbl, const void *name, size_t namesize,
*/
void *qtreetbl_get(qtreetbl_t *tbl, const char *name, size_t *datasize,
bool newmem) {
return qtreetbl_get_by_obj(tbl, name,
(name != NULL) ? (strlen(name) + 1) : 0,
datasize, newmem);
return qtreetbl_getobj(tbl,
name, (name != NULL) ? (strlen(name) + 1) : 0, datasize, newmem);
}

/**
Expand All @@ -420,13 +417,12 @@ void *qtreetbl_get(qtreetbl_t *tbl, const char *name, size_t *datasize,
* newmem flag must be set to true always.
*/
char *qtreetbl_getstr(qtreetbl_t *tbl, const char *name, const bool newmem) {
return qtreetbl_get_by_obj(tbl, name,
(name != NULL) ? (strlen(name) + 1) : 0, NULL,
newmem);
return qtreetbl_getobj(tbl,
name, (name != NULL) ? (strlen(name) + 1) : 0, NULL, newmem);
}

/**
* qtreetbl->get_by_obj(): Get an object from this table with an object name.
* qtreetbl->getobj(): Get an object from this table with an object name.
*
* @param tbl qtreetbl_t container pointer.
* @param name key name.
Expand All @@ -446,8 +442,8 @@ char *qtreetbl_getstr(qtreetbl_t *tbl, const char *name, const bool newmem) {
* directly and should not be de-allocated by user. In thread-safe mode,
* newmem flag must be set to true always.
*/
void *qtreetbl_get_by_obj(qtreetbl_t *tbl, const char *name, size_t namesize,
size_t *datasize, bool newmem) {
void *qtreetbl_getobj(qtreetbl_t *tbl, const char *name, size_t namesize,
size_t *datasize, bool newmem) {
if (name == NULL || namesize == 0) {
errno = EINVAL;
return NULL;
Expand Down Expand Up @@ -478,8 +474,8 @@ void *qtreetbl_get_by_obj(qtreetbl_t *tbl, const char *name, size_t namesize,
* - EINVAL : Invalid argument.
*/
bool qtreetbl_remove(qtreetbl_t *tbl, const char *name) {
return qtreetbl_remove_by_obj(tbl, name,
(name != NULL) ? strlen(name) + 1 : 0);
return qtreetbl_removeobj(tbl,
name, (name != NULL) ? strlen(name) + 1 : 0);
}

/**
Expand All @@ -494,7 +490,7 @@ bool qtreetbl_remove(qtreetbl_t *tbl, const char *name) {
* - ENOENT : No such key found.
* - EINVAL : Invalid argument.
*/
bool qtreetbl_remove_by_obj(qtreetbl_t *tbl, const void *name, size_t namesize) {
bool qtreetbl_removeobj(qtreetbl_t *tbl, const void *name, size_t namesize) {
if (name == NULL) {
errno = EINVAL;
return false;
Expand Down Expand Up @@ -566,7 +562,7 @@ bool qtreetbl_remove_by_obj(qtreetbl_t *tbl, const void *name, size_t namesize)
* if (...condition...) {
* char *name = qmemdup(obj.name, obj.namesize); // keep the name
* size_t namesize = obj.namesize; // for removal argument
* tbl->remove_by_obj(tbl, obj.name, obj.namesize); // remove
* tbl->removeobj(tbl, obj.name, obj.namesize); // remove
* obj = tbl->find_nearest(tbl, name, namesize, false); // rewind one step back
* free(name); // clean up
* }
Expand Down

0 comments on commit 856193a

Please sign in to comment.