]> arthur.barton.de Git - netatalk.git/blobdiff - include/atalk/cnid.h
New MySQL CNID backend
[netatalk.git] / include / atalk / cnid.h
index 2c673fbcccf2c63e77d088982e1203ae3e13e90c..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 */
@@ -49,7 +50,7 @@
  * 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 */
 
@@ -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;
 };
 
 /*
@@ -91,7 +99,7 @@ struct _cnid_module {
     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;
@@ -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