From f0e0512a5f4b0e4df0b43b714feca5016e0e5619 Mon Sep 17 00:00:00 2001
From: hofmockel <dreagonfly@gmx.de>
Date: Sun, 2 Feb 2014 17:27:34 +0100
Subject: [PATCH] Add definitions to wrap BackupEngine

---
 rocksdb/backup.pxd | 35 +++++++++++++++++++++++++++++++++++
 rocksdb/env.pxd    |  5 +++++
 2 files changed, 40 insertions(+)
 create mode 100644 rocksdb/backup.pxd
 create mode 100644 rocksdb/env.pxd

diff --git a/rocksdb/backup.pxd b/rocksdb/backup.pxd
new file mode 100644
index 0000000..8ac14a6
--- /dev/null
+++ b/rocksdb/backup.pxd
@@ -0,0 +1,35 @@
+from libcpp cimport bool as cpp_bool
+from libcpp.string cimport string
+from libcpp.vector cimport vector
+from libc.stdint cimport uint32_t
+from libc.stdint cimport int64_t
+from libc.stdint cimport uint64_t
+
+from status cimport Status
+from db cimport DB
+from env cimport Env
+
+cdef extern from "utilities/backupable_db.h" namespace "rocksdb":
+    ctypedef uint32_t BackupID
+
+    cdef cppclass BackupableDBOptions:
+        BackupableDBOptions(const string& backup_dir)
+
+    cdef struct BackupInfo:
+        BackupID backup_id
+        int64_t timestamp
+        uint64_t size
+
+    cdef cppclass BackupEngine:
+        Status CreateNewBackup(DB*, cpp_bool) nogil except+
+        Status PurgeOldBackups(uint32_t) nogil except+
+        Status DeleteBackup(BackupID) nogil except+
+        void StopBackup() nogil except+
+        void GetBackupInfo(vector[BackupInfo]*) nogil except+
+        Status RestoreDBFromBackup(BackupID, string&, string&) nogil except+
+        Status RestoreDBFromLatestBackup(string&, string&) nogil except+
+        void DeleteBackupsNewerThan(uint64_t) nogil except+
+
+    cdef BackupEngine* NewBackupEngine "rocksdb::BackupEngine::NewBackupEngine"(
+            Env*,
+            BackupableDBOptions&)
diff --git a/rocksdb/env.pxd b/rocksdb/env.pxd
new file mode 100644
index 0000000..5996094
--- /dev/null
+++ b/rocksdb/env.pxd
@@ -0,0 +1,5 @@
+cdef extern from "rocksdb/env.h" namespace "rocksdb":
+    cdef cppclass Env:
+        Env()
+
+    cdef Env* Env_Default "rocksdb::Env::Default"()
-- 
GitLab