summaryrefslogtreecommitdiffstats
path: root/src/rgw/driver/rados/rgw_datalog_notify.h
blob: 4cd1b3c110f5d115038a22da4b06f0e32be28c0a (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
// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
// vim: ts=8 sw=2 smarttab ft=cpp

#pragma once

#include <boost/container/flat_map.hpp>
#include <boost/container/flat_set.hpp>

#include "rgw_datalog.h"

namespace bc = boost::container;

namespace ceph { class Formatter; }
class JSONObj;

class RGWCoroutine;
class RGWHTTPManager;
class RGWRESTConn;

struct rgw_data_notify_entry;

// json encoder and decoder for notify v1 API
struct rgw_data_notify_v1_encoder {
  const bc::flat_map<int, bc::flat_set<rgw_data_notify_entry>>& shards;
};
void encode_json(const char *name, const rgw_data_notify_v1_encoder& e,
                 ceph::Formatter *f);
struct rgw_data_notify_v1_decoder {
  bc::flat_map<int, bc::flat_set<rgw_data_notify_entry>>& shards;
};
void decode_json_obj(rgw_data_notify_v1_decoder& d, JSONObj *obj);