]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/tools/rbd_mirror/Threads.h
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / tools / rbd_mirror / Threads.h
index 04e1848b503b0da9b8de8eb2afa8de6c82a586ac..91c923ab4a04e30860610756c2422ad23af9c236 100644 (file)
@@ -5,27 +5,32 @@
 #define CEPH_RBD_MIRROR_THREADS_H
 
 #include "include/common_fwd.h"
+#include "include/rados/librados_fwd.hpp"
 #include "common/ceph_mutex.h"
+#include <memory>
 
-class ContextWQ;
 class SafeTimer;
 class ThreadPool;
 
-namespace librbd { struct ImageCtx; }
+namespace librbd {
+struct AsioEngine;
+struct ImageCtx;
+namespace asio { struct ContextWQ; }
+} // namespace librbd
 
 namespace rbd {
 namespace mirror {
 
 template <typename ImageCtxT = librbd::ImageCtx>
-struct Threads {
-  ThreadPool *thread_pool = nullptr;
-  ContextWQ *work_queue = nullptr;
+class Threads {
+public:
+  librbd::AsioEngine* asio_engine = nullptr;
+  librbd::asio::ContextWQ* work_queue = nullptr;
 
   SafeTimer *timer = nullptr;
-  ceph::mutex timer_lock =
-    ceph::make_mutex("Threads::timer_lock");
+  ceph::mutex timer_lock = ceph::make_mutex("Threads::timer_lock");
 
-  explicit Threads(CephContext *cct);
+  explicit Threads(std::shared_ptr<librados::Rados>& rados);
   Threads(const Threads&) = delete;
   Threads& operator=(const Threads&) = delete;