]> arthur.barton.de Git - netatalk.git/blobdiff - include/atalk/cnid.h
New MySQL CNID backend
[netatalk.git] / include / atalk / cnid.h
index 2d3aa062b8b601c4ac016e4aa59d5d672e8e05c6..9c8e0bacd065a69afb363b499ee78024c41f26f3 100644 (file)
@@ -24,6 +24,7 @@
 
 #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 */
@@ -69,6 +70,7 @@ struct _cnid_db {
                                 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;
 
@@ -80,8 +82,14 @@ struct cnid_open_args {
     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;
 };
 
 /*
@@ -108,7 +116,9 @@ struct _cnid_db *cnid_open(const char *volpath,
                            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);
@@ -123,6 +133,7 @@ cnid_t cnid_rebuild_add(struct _cnid_db *cdb, const struct stat *st, const cnid_
                         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