]> git.proxmox.com Git - ceph.git/blob - ceph/src/rgw/services/svc_bi.h
import 15.2.0 Octopus source
[ceph.git] / ceph / src / rgw / services / svc_bi.h
1
2 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
3 // vim: ts=8 sw=2 smarttab ft=cpp
4
5 /*
6 * Ceph - scalable distributed file system
7 *
8 * Copyright (C) 2019 Red Hat, Inc.
9 *
10 * This is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU Lesser General Public
12 * License version 2.1, as published by the Free Software
13 * Foundation. See file COPYING.
14 *
15 */
16
17
18 #pragma once
19
20 #include "rgw/rgw_service.h"
21
22 class RGWBucketInfo;
23 struct RGWBucketEnt;
24
25
26 class RGWSI_BucketIndex : public RGWServiceInstance
27 {
28 public:
29 RGWSI_BucketIndex(CephContext *cct) : RGWServiceInstance(cct) {}
30 virtual ~RGWSI_BucketIndex() {}
31
32 virtual int init_index(RGWBucketInfo& bucket_info) = 0;
33 virtual int clean_index(RGWBucketInfo& bucket_info) = 0;
34
35 virtual int read_stats(const RGWBucketInfo& bucket_info,
36 RGWBucketEnt *stats,
37 optional_yield y) = 0;
38
39 virtual int handle_overwrite(const RGWBucketInfo& info,
40 const RGWBucketInfo& orig_info) = 0;
41 };
42