X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Ftools%2Frbd_ggate%2FServer.h;fp=src%2Fceph%2Fsrc%2Ftools%2Frbd_ggate%2FServer.h;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=8ed4f51201093c714fcd820732a1f91b87248589;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/tools/rbd_ggate/Server.h b/src/ceph/src/tools/rbd_ggate/Server.h deleted file mode 100644 index 8ed4f51..0000000 --- a/src/ceph/src/tools/rbd_ggate/Server.h +++ /dev/null @@ -1,88 +0,0 @@ -// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- -// vim: ts=8 sw=2 smarttab - -#ifndef CEPH_RBD_GGATE_SERVER_H -#define CEPH_RBD_GGATE_SERVER_H - -#include "include/rbd/librbd.hpp" -#include "include/xlist.h" -#include "common/Cond.h" -#include "common/Mutex.h" -#include "common/Thread.h" - -namespace rbd { -namespace ggate { - -class Driver; -struct Request; - -class Server { -public: - Server(Driver *drv, librbd::Image& image); - - void run(); - -private: - struct IOContext { - xlist::item item; - Server *server; - Request *req = nullptr; - - IOContext(Server *server) : item(this), server(server) { - } - }; - - class ThreadHelper : public Thread { - public: - typedef void (Server::*entry_func)(); - - ThreadHelper(Server *server, entry_func func) - : server(server), func(func) { - } - - protected: - virtual void* entry() { - (server->*func)(); - return nullptr; - } - - private: - Server *server; - entry_func func; - }; - - friend std::ostream &operator<<(std::ostream &os, const IOContext &ctx); - - Driver *m_drv; - librbd::Image &m_image; - - mutable Mutex m_lock; - Cond m_cond; - bool m_stopping = false; - ThreadHelper m_reader_thread, m_writer_thread; - xlist m_io_pending; - xlist m_io_finished; - - static void aio_callback(librbd::completion_t cb, void *arg); - - int start(); - void stop(); - - void reader_entry(); - void writer_entry(); - - void io_start(IOContext *ctx); - void io_finish(IOContext *ctx); - - IOContext *wait_io_finish(); - void wait_clean(); - - void handle_aio(IOContext *ctx, int r); -}; - -std::ostream &operator<<(std::ostream &os, const Server::IOContext &ctx); - -} // namespace ggate -} // namespace rbd - -#endif // CEPH_RBD_GGATE_SERVER_H