1 #ifndef OBJ_BACKEND_H 2 #define OBJ_BACKEND_H 3 4 #include <glib.h> 5 #include "obj-store.h" 6 7 typedef struct ObjBackend ObjBackend; 8 9 struct ObjBackend { 10 int (*read) (ObjBackend *bend, 11 const char *repo_id, 12 int version, 13 const char *obj_id, 14 void **data, 15 int *len); 16 17 int (*write) (ObjBackend *bend, 18 const char *repo_id, 19 int version, 20 const char *obj_id, 21 void *data, 22 int len, 23 gboolean need_sync); 24 25 gboolean (*exists) (ObjBackend *bend, 26 const char *repo_id, 27 int version, 28 const char *obj_id); 29 30 void (*delete) (ObjBackend *bend, 31 const char *repo_id, 32 int version, 33 const char *obj_id); 34 35 int (*foreach_obj) (ObjBackend *bend, 36 const char *repo_id, 37 int version, 38 SeafObjFunc process, 39 void *user_data); 40 41 int (*copy) (ObjBackend *bend, 42 const char *src_repo_id, 43 int src_version, 44 const char *dst_repo_id, 45 int dst_version, 46 const char *obj_id); 47 48 int (*remove_store) (ObjBackend *bend, 49 const char *store_id); 50 51 void *priv; 52 }; 53 54 #endif 55