]>
git.proxmox.com Git - ceph.git/blob - ceph/src/rgw/services/svc_finisher.h
1 #ifndef CEPH_RGW_SERVICES_FINISHER_H
2 #define CEPH_RGW_SERVICES_FINISHER_H
5 #include "rgw/rgw_service.h"
10 class RGWSI_Finisher
: public RGWServiceInstance
12 friend struct RGWServices_Def
;
17 Finisher
*finisher
{nullptr};
18 bool finalized
{false};
20 void shutdown() override
;
22 std::map
<int, ShutdownCB
*> shutdown_cbs
;
23 std::atomic
<int> handles_counter
{0};
27 int do_start() override
;
30 RGWSI_Finisher(CephContext
*cct
): RGWServiceInstance(cct
) {}
35 virtual ~ShutdownCB() {}
36 virtual void call() = 0;
39 void register_caller(ShutdownCB
*cb
, int *phandle
);
40 void unregister_caller(int handle
);
42 void schedule_context(Context
*c
);