dircache.h (1750B)
1 /* 2 * Copyright (c) 2014 Mohamed Aslan <maslan@sce.carleton.ca> 3 * 4 * Permission to use, copy, modify, and distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17 #ifndef _DIRCACHE_H_ 18 #define _DIRCACHE_H_ 19 20 #include <sys/types.h> 21 #include "objdb.h" 22 23 struct dircache_ctx { 24 char *repo_rootpath; 25 char *repo_baselinepath; 26 struct objdb_ctx *db_ctx; 27 struct objdb_ops *db_ops; 28 }; 29 30 struct dircache_ops { 31 char *name; 32 char *version; 33 int (*open)(struct dircache_ctx **, struct objdb_ctx *, struct objdb_ops *, const char *, const char *); 34 int (*close)(struct dircache_ctx *); 35 int (*init)(struct dircache_ctx *); 36 int (*insert)(struct dircache_ctx *, const char *); 37 int (*remove)(struct dircache_ctx *, const char *); 38 int (*commit)(struct dircache_ctx *, const char *); 39 int (*branch_get)(struct dircache_ctx *, char **); 40 int (*branch_set)(struct dircache_ctx *, const char *); 41 int (*workdir_get)(struct dircache_ctx *, char **); 42 int (*workdir_set)(struct dircache_ctx *, const char *); 43 int (*fsck)(struct dircache_ctx *); 44 int (*compress)(struct dircache_ctx *); 45 int (*dedup)(struct dircache_ctx *); 46 }; 47 48 #endif