]> git.proxmox.com Git - ceph.git/blob - ceph/src/librbd/LibrbdAdminSocketHook.h
d07a9280e583385cab6f8f98434f712caa73a2e6
[ceph.git] / ceph / src / librbd / LibrbdAdminSocketHook.h
1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
3 #ifndef CEPH_LIBRBD_LIBRBDADMINSOCKETHOOK_H
4 #define CEPH_LIBRBD_LIBRBDADMINSOCKETHOOK_H
5
6 #include <map>
7
8 #include "common/admin_socket.h"
9
10 namespace librbd {
11
12 struct ImageCtx;
13 class LibrbdAdminSocketCommand;
14
15 class LibrbdAdminSocketHook : public AdminSocketHook {
16 public:
17 LibrbdAdminSocketHook(ImageCtx *ictx);
18 ~LibrbdAdminSocketHook() override;
19
20 int call(std::string_view command, const cmdmap_t& cmdmap,
21 Formatter *f,
22 std::ostream& errss,
23 bufferlist& out) override;
24
25 private:
26 typedef std::map<std::string,LibrbdAdminSocketCommand*,
27 std::less<>> Commands;
28
29 AdminSocket *admin_socket;
30 Commands commands;
31 };
32 }
33
34 #endif