summaryrefslogtreecommitdiffstats
path: root/src/tools/immutable_object_cache/CacheController.h
blob: f70f6bb1c9402cb6461ffd21755d59c598e9b71a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
// vim: ts=8 sw=2 smarttab

#ifndef CEPH_CACHE_CACHE_CONTROLLER_H
#define CEPH_CACHE_CACHE_CONTROLLER_H

#include "common/ceph_context.h"
#include "common/WorkQueue.h"
#include "CacheServer.h"
#include "ObjectCacheStore.h"

namespace ceph {
namespace immutable_obj_cache {

class CacheController {
 public:
  CacheController(CephContext *cct, const std::vector<const char*> &args);
  ~CacheController();

  int init();

  int shutdown();

  void handle_signal(int sinnum);

  int run();

  void handle_request(CacheSession* session, ObjectCacheRequest* msg);

 private:
  CacheServer *m_cache_server = nullptr;
  std::vector<const char*> m_args;
  CephContext *m_cct;
  ObjectCacheStore *m_object_cache_store = nullptr;
};

}  // namespace immutable_obj_cache
}  // namespace ceph

#endif  // CEPH_CACHE_CACHE_CONTROLLER_H