X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Ftools%2Frbd_mirror%2Fimage_sync%2FImageCopyRequest.h;fp=src%2Fceph%2Fsrc%2Ftools%2Frbd_mirror%2Fimage_sync%2FImageCopyRequest.h;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=4be826aa127ae1818cf3dacc66b38db2f009ef73;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/tools/rbd_mirror/image_sync/ImageCopyRequest.h b/src/ceph/src/tools/rbd_mirror/image_sync/ImageCopyRequest.h deleted file mode 100644 index 4be826a..0000000 --- a/src/ceph/src/tools/rbd_mirror/image_sync/ImageCopyRequest.h +++ /dev/null @@ -1,133 +0,0 @@ -// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- -// vim: ts=8 sw=2 smarttab - -#ifndef RBD_MIRROR_IMAGE_SYNC_IMAGE_COPY_REQUEST_H -#define RBD_MIRROR_IMAGE_SYNC_IMAGE_COPY_REQUEST_H - -#include "include/int_types.h" -#include "include/rados/librados.hpp" -#include "common/Mutex.h" -#include "librbd/journal/Types.h" -#include "librbd/journal/TypeTraits.h" -#include "tools/rbd_mirror/BaseRequest.h" -#include -#include - -class Context; -class SafeTimer; -namespace journal { class Journaler; } -namespace librbd { struct ImageCtx; } - -namespace rbd { -namespace mirror { - -class ProgressContext; - -namespace image_sync { - -template -class ImageCopyRequest : public BaseRequest { -public: - typedef std::vector SnapIds; - typedef std::map SnapMap; - typedef librbd::journal::TypeTraits TypeTraits; - typedef typename TypeTraits::Journaler Journaler; - typedef librbd::journal::MirrorPeerSyncPoint MirrorPeerSyncPoint; - typedef librbd::journal::MirrorPeerClientMeta MirrorPeerClientMeta; - typedef rbd::mirror::ProgressContext ProgressContext; - - static ImageCopyRequest* create(ImageCtxT *local_image_ctx, - ImageCtxT *remote_image_ctx, - SafeTimer *timer, Mutex *timer_lock, - Journaler *journaler, - MirrorPeerClientMeta *client_meta, - MirrorPeerSyncPoint *sync_point, - Context *on_finish, - ProgressContext *progress_ctx = nullptr) { - return new ImageCopyRequest(local_image_ctx, remote_image_ctx, timer, - timer_lock, journaler, client_meta, sync_point, - on_finish, progress_ctx); - } - - ImageCopyRequest(ImageCtxT *local_image_ctx, ImageCtxT *remote_image_ctx, - SafeTimer *timer, Mutex *timer_lock, Journaler *journaler, - MirrorPeerClientMeta *client_meta, - MirrorPeerSyncPoint *sync_point, Context *on_finish, - ProgressContext *progress_ctx = nullptr); - - void send() override; - void cancel() override; - -private: - /** - * @verbatim - * - * - * | - * v - * UPDATE_MAX_OBJECT_COUNT - * | - * | . . . . . - * | . . (parallel execution of - * v v . multiple objects at once) - * COPY_OBJECT . . - * | - * v - * FLUSH_SYNC_POINT - * | - * v - * - * - * @endverbatim - */ - - ImageCtxT *m_local_image_ctx; - ImageCtxT *m_remote_image_ctx; - SafeTimer *m_timer; - Mutex *m_timer_lock; - Journaler *m_journaler; - MirrorPeerClientMeta *m_client_meta; - MirrorPeerSyncPoint *m_sync_point; - ProgressContext *m_progress_ctx; - - SnapMap m_snap_map; - - Mutex m_lock; - bool m_canceled = false; - - uint64_t m_object_no = 0; - uint64_t m_end_object_no; - uint64_t m_current_ops = 0; - int m_ret_val = 0; - - bool m_updating_sync_point; - Context *m_update_sync_ctx; - double m_update_sync_point_interval; - - MirrorPeerClientMeta m_client_meta_copy; - - void send_update_max_object_count(); - void handle_update_max_object_count(int r); - - void send_object_copies(); - void send_next_object_copy(); - void handle_object_copy(int r); - - void send_update_sync_point(); - void handle_update_sync_point(int r); - - void send_flush_sync_point(); - void handle_flush_sync_point(int r); - - int compute_snap_map(); - - void update_progress(const std::string &description, bool flush = true); -}; - -} // namespace image_sync -} // namespace mirror -} // namespace rbd - -extern template class rbd::mirror::image_sync::ImageCopyRequest; - -#endif // RBD_MIRROR_IMAGE_SYNC_IMAGE_COPY_REQUEST_H