summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Roche <xroche@users.noreply.github.com>2014-06-14 13:07:33 +0000
committerXavier Roche <xroche@users.noreply.github.com>2014-06-14 13:07:33 +0000
commit028f23ca6f977c2cd0dda6a5fb87e479a92b3511 (patch)
tree988cc932d0e5111920547bd9df80b5d98a826d07
parentbf40691b62435829f822cea1e54b4c323700c627 (diff)
Added coucal_get_pvoid() and coucal_get_intptr()
-rw-r--r--src/coucal.c16
-rw-r--r--src/coucal.h15
2 files changed, 30 insertions, 1 deletions
diff --git a/src/coucal.c b/src/coucal.c
index 3a81b87..9654431 100644
--- a/src/coucal.c
+++ b/src/coucal.c
@@ -709,6 +709,14 @@ int coucal_read_pvoid(coucal hashtable, coucal_key_const name, void **pvalue) {
return ret;
}
+void* coucal_get_pvoid(coucal hashtable, coucal_key_const name) {
+ void *value;
+ if (!coucal_read_pvoid(hashtable, name, &value)) {
+ return NULL;
+ }
+ return value;
+}
+
int coucal_write_pvoid(coucal hashtable, coucal_key_const name, void *pvalue) {
coucal_value value = INTHASH_VALUE_NULL;
@@ -1281,6 +1289,14 @@ int coucal_readptr(coucal hashtable, coucal_key_const name, intptr_t * value) {
return ret;
}
+intptr_t coucal_get_intptr(coucal hashtable, coucal_key_const name) {
+ intptr_t value;
+ if (!coucal_read(hashtable, name, &value)) {
+ return 0;
+ }
+ return value;
+}
+
coucal coucal_new(size_t initial_size) {
coucal hashtable = (coucal) calloc(1, sizeof(struct_coucal));
diff --git a/src/coucal.h b/src/coucal.h
index 6a9da6e..57eaaa1 100644
--- a/src/coucal.h
+++ b/src/coucal.h
@@ -326,7 +326,14 @@ COUCAL_EXTERN int coucal_read(coucal hashtable, coucal_key_const name,
* Same as coucal_read(), but return 0 is the value was zero.
**/
COUCAL_EXTERN int coucal_readptr(coucal hashtable, coucal_key_const name,
- intptr_t * intvalue);
+ intptr_t * intvalue);
+
+/**
+ * Read an integer entry from the hashtable.
+ * Return 0 if the entry could not be found.
+ **/
+COUCAL_EXTERN intptr_t coucal_get_intptr(coucal hashtable,
+ coucal_key_const name);
/**
* Return non-zero value if the given entry exists.
@@ -355,6 +362,12 @@ COUCAL_EXTERN int coucal_read_pvoid(coucal hashtable, coucal_key_const name,
void **value);
/**
+ * Read a pointer entry from the hashtable and returns its value.
+ * Return NULL if the entry could not be found.
+ **/
+COUCAL_EXTERN void* coucal_get_pvoid(coucal hashtable, coucal_key_const name);
+
+/**
* Write a pointer entry to the hashtable.
* Return non-zero value if the entry was added, zero if it was replaced.
**/