]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/librbd/crypto/EncryptionFormat.h
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / librbd / crypto / EncryptionFormat.h
index ba57a92524f42e5d2d35dd61fd69522b0dbb2625..252592891d5c8da0d9ef7140f2732ccdbd628b50 100644 (file)
@@ -4,7 +4,7 @@
 #ifndef CEPH_LIBRBD_CRYPTO_ENCRYPTION_FORMAT_H
 #define CEPH_LIBRBD_CRYPTO_ENCRYPTION_FORMAT_H
 
-#include "common/ref.h"
+#include <memory>
 
 struct Context;
 
@@ -18,10 +18,13 @@ struct EncryptionFormat {
   virtual ~EncryptionFormat() {
   }
 
+  virtual std::unique_ptr<EncryptionFormat<ImageCtxT>> clone() const = 0;
   virtual void format(ImageCtxT* ictx, Context* on_finish) = 0;
-  virtual void load(ImageCtxT* ictx, Context* on_finish) = 0;
+  virtual void load(ImageCtxT* ictx, std::string* detected_format_name,
+                    Context* on_finish) = 0;
+  virtual void flatten(ImageCtxT* ictx, Context* on_finish) = 0;
 
-  virtual ceph::ref_t<CryptoInterface> get_crypto() = 0;
+  virtual CryptoInterface* get_crypto() = 0;
 };
 
 } // namespace crypto