1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab ft=cpp
7 namespace rgw
{ namespace sal
{
11 #include "cls/otp/cls_otp_types.h"
12 #include "services/svc_meta_be_otp.h"
14 #include "rgw_basic_types.h"
15 #include "rgw_metadata.h"
18 class RGWObjVersionTracker
;
19 class RGWMetadataHandler
;
20 class RGWOTPMetadataHandler
;
23 class RGWSI_MetaBackend
;
25 class RGWOTPMetadataHandlerBase
: public RGWMetadataHandler_GenericMetaBE
{
27 virtual ~RGWOTPMetadataHandlerBase() {}
28 virtual int init(RGWSI_Zone
*zone
,
29 RGWSI_MetaBackend
*_meta_be
,
33 class RGWOTPMetaHandlerAllocator
{
35 static RGWMetadataHandler
*alloc();
40 otp_devices_list_t devices
;
47 RGWSI_Zone
*zone
{nullptr};
48 RGWSI_OTP
*otp
{nullptr};
51 RGWOTPMetadataHandler
*meta_handler
;
52 RGWSI_MetaBackend_Handler
*be_handler
;
55 RGWOTPCtl(RGWSI_Zone
*zone_svc
,
58 void init(RGWOTPMetadataHandler
*_meta_handler
);
61 RGWObjVersionTracker
*objv_tracker
{nullptr};
62 ceph::real_time
*mtime
{nullptr};
66 GetParams
& set_objv_tracker(RGWObjVersionTracker
*_objv_tracker
) {
67 objv_tracker
= _objv_tracker
;
71 GetParams
& set_mtime(ceph::real_time
*_mtime
) {
78 RGWObjVersionTracker
*objv_tracker
{nullptr};
79 ceph::real_time mtime
;
83 PutParams
& set_objv_tracker(RGWObjVersionTracker
*_objv_tracker
) {
84 objv_tracker
= _objv_tracker
;
88 PutParams
& set_mtime(const ceph::real_time
& _mtime
) {
95 RGWObjVersionTracker
*objv_tracker
{nullptr};
99 RemoveParams
& set_objv_tracker(RGWObjVersionTracker
*_objv_tracker
) {
100 objv_tracker
= _objv_tracker
;
105 int read_all(const rgw_user
& uid
, RGWOTPInfo
*info
, optional_yield y
,
106 const DoutPrefixProvider
*dpp
,
107 const GetParams
& params
= {});
108 int store_all(const DoutPrefixProvider
*dpp
,
109 const RGWOTPInfo
& info
, optional_yield y
,
110 const PutParams
& params
= {});
111 int remove_all(const DoutPrefixProvider
*dpp
,
112 const rgw_user
& user
, optional_yield y
,
113 const RemoveParams
& params
= {});