XROAD
xroad_cache.h
Go to the documentation of this file.
1 
5 #pragma once
7 #include <common/xroad_xml.h>
8 #include "xroad_storage_fwd.h"
9 #include "xroad_objects.h"
10 
11 #ifdef __cplusplus
12 extern "C"
13 {
14 #endif
15 
16 typedef struct xroad_cache_s xroad_cache_t;
17 
23 xroad_cache_t* xroad_cache_open(xroad_str_t root_dir);
24 
29 void xroad_cache_destroy(xroad_cache_t* cache);
30 
37 void* xroad_cache_create_object(xroad_cache_t* cache, xroad_object_type_t type);
38 
46 void* xroad_cache_get_object(xroad_cache_t* cache, xroad_object_type_t type, xroad_object_id_t id);
47 
54 void* xroad_cache_clone_object(xroad_cache_t* cache, const void* obj);
55 
63 void* xroad_cache_copy_object(xroad_cache_t* cache, const void* obj, xroad_object_id_t id);
64 
71 const xroad_storage_info_t* xroad_cache_get_info(xroad_cache_t* cache, xroad_object_type_t type);
72 
79 xroad_storage_stat_t xroad_cache_get_stat(xroad_cache_t* cache, xroad_object_type_t type);
80 
87 xroad_cursor_t* xroad_cache_create_cursor(xroad_cache_t* cache, xroad_object_type_t type);
88 
93 void xroad_cache_destroy_cursor(xroad_cursor_t* cursor);
94 
98 #define __xroad_cursor_dtor__ __dtor__(xroad_cursor_destructor)
99 void xroad_cursor_destructor(xroad_cursor_t** cursor);
100 
106 void* xroad_cache_cursor_get_first(xroad_cursor_t* cursor);
107 
113 void* xroad_cache_cursor_get_last(xroad_cursor_t* cursor);
114 
120 void* xroad_cache_cursor_get_next(xroad_cursor_t* cursor);
121 
127 void* xroad_cache_cursor_get_prev(xroad_cursor_t* cursor);
128 
135 void* xroad_cache_cursor_offset(xroad_cursor_t* cursor, int64_t offset);
136 
144 xroad_errno_t xroad_cache_clear(xroad_cache_t* cache, xroad_object_type_t type, bool force);
145 
155 storage_heap_ref_t xroad_cache_heap_alloc(xroad_cache_t* cache, xroad_object_type_t type, storage_heap_ref_t ref,
156  const void* data, uint32_t len);
157 
165 xroad_errno_t xroad_cache_heap_free(xroad_cache_t* cache, xroad_object_type_t type, storage_heap_ref_t ref);
166 
174 storage_heap_data_t xroad_cache_heap_get(xroad_cache_t* cache, xroad_object_type_t type, storage_heap_ref_t ref);
175 
181 void xroad_cache_check_fill(xroad_cache_t* cache, double fill_factor);
182 
187 void xroad_cache_check_storage_deadlock(xroad_cache_t* cache);
188 
195 xroad_errno_t xroad_cache_check_object_deadlocks_by_type(xroad_cache_t* cache, xroad_object_type_t type);
196 
202 xroad_errno_t xroad_cache_check_object_deadlocks_by_pid(xroad_cache_t* cache);
203 
210 void* xroad_cache_lock_object(xroad_cache_t* cache, void* obj);
211 
217 void xroad_cache_unlock_object(xroad_cache_t* cache, void* obj);
218 
219 #ifdef __cplusplus
220 }
221 #endif
Definition: xroad_storage_fwd.h:28
Definition: xroad_storage_fwd.h:37
Definition: xroad_storage_fwd.h:58
Definition: xroad_string.h:29
void xroad_cache_unlock_object(xroad_cache_t *cache, void *obj)
void * xroad_cache_lock_object(xroad_cache_t *cache, void *obj)
void * xroad_cache_cursor_get_last(xroad_cursor_t *cursor)
xroad_storage_stat_t xroad_cache_get_stat(xroad_cache_t *cache, xroad_object_type_t type)
storage_heap_ref_t xroad_cache_heap_alloc(xroad_cache_t *cache, xroad_object_type_t type, storage_heap_ref_t ref, const void *data, uint32_t len)
void * xroad_cache_cursor_get_prev(xroad_cursor_t *cursor)
void * xroad_cache_cursor_get_next(xroad_cursor_t *cursor)
void * xroad_cache_get_object(xroad_cache_t *cache, xroad_object_type_t type, xroad_object_id_t id)
void * xroad_cache_copy_object(xroad_cache_t *cache, const void *obj, xroad_object_id_t id)
storage_heap_data_t xroad_cache_heap_get(xroad_cache_t *cache, xroad_object_type_t type, storage_heap_ref_t ref)
const xroad_storage_info_t * xroad_cache_get_info(xroad_cache_t *cache, xroad_object_type_t type)
void * xroad_cache_clone_object(xroad_cache_t *cache, const void *obj)
xroad_errno_t xroad_cache_check_object_deadlocks_by_pid(xroad_cache_t *cache)
void xroad_cache_check_fill(xroad_cache_t *cache, double fill_factor)
void * xroad_cache_cursor_get_first(xroad_cursor_t *cursor)
void xroad_cache_destroy_cursor(xroad_cursor_t *cursor)
void xroad_cache_check_storage_deadlock(xroad_cache_t *cache)
xroad_cache_t * xroad_cache_open(xroad_str_t root_dir)
xroad_errno_t xroad_cache_clear(xroad_cache_t *cache, xroad_object_type_t type, bool force)
void * xroad_cache_create_object(xroad_cache_t *cache, xroad_object_type_t type)
xroad_errno_t xroad_cache_check_object_deadlocks_by_type(xroad_cache_t *cache, xroad_object_type_t type)
xroad_cursor_t * xroad_cache_create_cursor(xroad_cache_t *cache, xroad_object_type_t type)
void * xroad_cache_cursor_offset(xroad_cursor_t *cursor, int64_t offset)
xroad_errno_t xroad_cache_heap_free(xroad_cache_t *cache, xroad_object_type_t type, storage_heap_ref_t ref)
void xroad_cache_destroy(xroad_cache_t *cache)
CAUTION: do not change this file - it is autogenerated.