1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab ft=cpp
4 #ifndef CEPH_RGW_SYNC_MODULE_PUBSUB_H
5 #define CEPH_RGW_SYNC_MODULE_PUBSUB_H
7 #include "rgw_sync_module.h"
9 class RGWPSSyncModule
: public RGWSyncModule
{
12 bool supports_data_export() override
{
15 bool supports_writes() override
{
18 int create_instance(const DoutPrefixProvider
*dpp
, CephContext
*cct
, const JSONFormattable
& config
, RGWSyncModuleInstanceRef
*instance
) override
;
21 class RGWPSDataSyncModule
;
24 class RGWPSSyncModuleInstance
: public RGWSyncModuleInstance
{
25 std::unique_ptr
<RGWPSDataSyncModule
> data_handler
;
26 JSONFormattable effective_conf
;
28 RGWPSSyncModuleInstance(const DoutPrefixProvider
*dpp
, CephContext
*cct
, const JSONFormattable
& config
);
29 ~RGWPSSyncModuleInstance() = default;
30 RGWDataSyncModule
*get_data_handler() override
;
31 RGWRESTMgr
*get_rest_filter(int dialect
, RGWRESTMgr
*orig
) override
;
32 bool supports_user_writes() override
{
35 const JSONFormattable
& get_effective_conf() {
36 return effective_conf
;
38 // start with full sync based on configuration
39 // default to incremental only
40 virtual bool should_full_sync() const override
;