]>
Commit | Line | Data |
---|---|---|
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 | 11 | using namespace std; |
9f95a23c TL |
12 | |
13 | RGWSI_Meta::RGWSI_Meta(CephContext *cct) : RGWServiceInstance(cct) { | |
14 | } | |
15 | ||
16 | RGWSI_Meta::~RGWSI_Meta() {} | |
17 | ||
18 | void 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 | ||
30 | int 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 |