#include <atalk/adouble.h>
#include <atalk/list.h>
+#include <atalk/uuid.h>
/* CNID object flags */
#define CNID_FLAG_PERSISTENT 0x01 /* This backend implements DID persistence */
* This is instance of CNID database object.
*/
struct _cnid_db {
- u_int32_t flags; /* Flags describing some CNID backend aspects. */
+ uint32_t flags; /* Flags describing some CNID backend aspects. */
char *volpath; /* Volume path this particular CNID db refers to. */
void *_private; /* back-end speficic data */
- cnid_t (*cnid_add) (struct _cnid_db *cdb, const struct stat *st, const cnid_t did,
- char *name, const size_t, cnid_t hint);
+ cnid_t (*cnid_add) (struct _cnid_db *cdb, const struct stat *st, cnid_t did,
+ const char *name, size_t, cnid_t hint);
int (*cnid_delete) (struct _cnid_db *cdb, cnid_t id);
- cnid_t (*cnid_get) (struct _cnid_db *cdb, const cnid_t did, char *name, const size_t);
- cnid_t (*cnid_lookup) (struct _cnid_db *cdb, const struct stat *st, const cnid_t did,
- char *name, const size_t);
+ cnid_t (*cnid_get) (struct _cnid_db *cdb, cnid_t did, const char *name, size_t);
+ cnid_t (*cnid_lookup) (struct _cnid_db *cdb, const struct stat *st, cnid_t did,
+ const char *name, size_t);
cnid_t (*cnid_nextid) (struct _cnid_db *cdb);
char * (*cnid_resolve) (struct _cnid_db *cdb, cnid_t *id, void *buffer, size_t len);
- int (*cnid_update) (struct _cnid_db *cdb, const cnid_t id, const struct stat *st,
- const cnid_t did, char *name, const size_t len);
+ int (*cnid_update) (struct _cnid_db *cdb, cnid_t id, const struct stat *st,
+ cnid_t did, const char *name, size_t len);
void (*cnid_close) (struct _cnid_db *cdb);
int (*cnid_getstamp) (struct _cnid_db *cdb, void *buffer, const size_t len);
- cnid_t (*cnid_rebuild_add) (struct _cnid_db *, const struct stat *, const cnid_t,
- char *, const size_t, cnid_t);
- int (*cnid_find) (struct _cnid_db *cdb, char *name, size_t namelen,
+ cnid_t (*cnid_rebuild_add) (struct _cnid_db *, const struct stat *, cnid_t,
+ const char *, size_t, cnid_t);
+ int (*cnid_find) (struct _cnid_db *cdb, const char *name, size_t namelen,
void *buffer, size_t buflen);
+ int (*cnid_wipe) (struct _cnid_db *cdb);
};
typedef struct _cnid_db cnid_db;
const char *dir;
mode_t mask;
uint32_t flags;
- const char *cnidserver; /* for dbd */
- const char *cnidport; /* for dbd */
+
+ /* for dbd */
+ const char *cnidserver;
+ const char *cnidport;
+
+ /* for MySQL */
+ const void *obj;
+ char *voluuid;
};
/*
char *name;
struct list_head db_list; /* CNID modules are also stored on a bidirectional list. */
struct _cnid_db *(*cnid_open)(struct cnid_open_args *args);
- u_int32_t flags; /* Flags describing some CNID backend aspects. */
+ uint32_t flags; /* Flags describing some CNID backend aspects. */
};
typedef struct _cnid_module cnid_module;
char *type,
int flags,
const char *cnidsrv,
- const char *cnidport);
+ const char *cnidport,
+ const void *obj,
+ char *uuid);
cnid_t cnid_add (struct _cnid_db *cdb, const struct stat *st, const cnid_t did,
const char *name, const size_t len, cnid_t hint);
int cnid_delete (struct _cnid_db *cdb, cnid_t id);
char *name, const size_t len, cnid_t hint);
int cnid_find (struct _cnid_db *cdb, const char *name, size_t namelen,
void *buffer, size_t buflen);
+int cnid_wipe (struct _cnid_db *cdb);
void cnid_close (struct _cnid_db *db);
#endif