aboutsummaryrefslogtreecommitdiffstats
path: root/src/cache.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/cache.h')
-rw-r--r--src/cache.h43
1 files changed, 41 insertions, 2 deletions
diff --git a/src/cache.h b/src/cache.h
index dd37d92..d694e9b 100644
--- a/src/cache.h
+++ b/src/cache.h
@@ -14,12 +14,22 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
#pragma once
+/******************************************************************************/
+/******************************************************************************/
+/* IMPLEMENTATION OF CACHE IN CLIENTS */
+/******************************************************************************/
+/******************************************************************************/
-struct cache;
+/** opaque structure for cache */
typedef struct cache cache_t;
+/**
+ * Search the stored value for the key
+ * @param cache the cache handler
+ * @param key the key to search
+ * @return the stored value or -ENOENT if not found
+ */
extern
int
cache_search(
@@ -27,6 +37,16 @@ cache_search(
const rcyn_key_t *key
);
+/**
+ * Add the value for the key in the cache
+ * @param cache the cache handler
+ * @param key the key to cache
+ * @param value the value (must be an integer from -128 to 127)
+ * @param expire expiration date
+ * @return 0 on success
+ * -EINVAL invalid argument
+ * -ENOMEM too big for the cache size
+ */
extern
int
cache_put(
@@ -36,6 +56,11 @@ cache_put(
time_t expire
);
+/**
+ * Clear the content of the cache if the cacheid doesn't match the current one
+ * @param cache the cache handler
+ * @param cacheid the cacheid to set or zero to force clearing
+ */
extern
void
cache_clear(
@@ -43,6 +68,13 @@ cache_clear(
uint32_t cacheid
);
+/**
+ *
+ * @param cache pointer to the cache handler
+ * @param newsize new size to set to the cache
+ * @return 0 on success
+ * -ENOMEM not enough memory
+ */
extern
int
cache_resize(
@@ -50,6 +82,13 @@ cache_resize(
uint32_t newsize
);
+/**
+ *
+ * @param cache pointer to the cache handler
+ * @param size size to set to the cache
+ * @return 0 on success
+ * -ENOMEM not enough memory
+ */
extern
int
cache_create(