]> git.proxmox.com Git - ceph.git/blame - ceph/src/rgw/services/svc_meta.cc
import quincy beta 17.1.0
[ceph.git] / ceph / src / rgw / services / svc_meta.cc
CommitLineData
9f95a23c
TL
1// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2// vim: ts=8 sw=2 smarttab ft=cpp
3
4
5#include "svc_meta.h"
6
7#include "rgw/rgw_metadata.h"
8
9#define dout_subsys ceph_subsys_rgw
10
20effc67 11using namespace std;
9f95a23c
TL
12
13RGWSI_Meta::RGWSI_Meta(CephContext *cct) : RGWServiceInstance(cct) {
14}
15
16RGWSI_Meta::~RGWSI_Meta() {}
17
18void RGWSI_Meta::init(RGWSI_SysObj *_sysobj_svc,
19 RGWSI_MDLog *_mdlog_svc,
20 vector<RGWSI_MetaBackend *>& _be_svc)
21{
22 sysobj_svc = _sysobj_svc;
23 mdlog_svc = _mdlog_svc;
24
25 for (auto& be : _be_svc) {
26 be_svc[be->get_type()] = be;
27 }
28}
29
30int RGWSI_Meta::create_be_handler(RGWSI_MetaBackend::Type be_type,
31 RGWSI_MetaBackend_Handler **phandler)
32{
33 auto iter = be_svc.find(be_type);
34 if (iter == be_svc.end()) {
35 ldout(cct, 0) << __func__ << "(): ERROR: backend type not found" << dendl;
36 return -EINVAL;
37 }
38
39 auto handler = iter->second->alloc_be_handler();
40
41 be_handlers.emplace_back(handler);
42 *phandler = handler;
43
44 return 0;
45}
46