1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
4 #ifndef CEPH_LIBRBD_OBJECT_MAP_REQUEST_H
5 #define CEPH_LIBRBD_OBJECT_MAP_REQUEST_H
7 #include "include/int_types.h"
8 #include "librbd/AsyncRequest.h"
16 namespace object_map {
18 class Request : public AsyncRequest<> {
20 Request(ImageCtx &image_ctx, uint64_t snap_id, Context *on_finish)
21 : AsyncRequest(image_ctx, on_finish), m_snap_id(snap_id),
22 m_state(STATE_REQUEST)
26 void send() override = 0;
29 const uint64_t m_snap_id;
31 bool should_complete(int r) override;
32 int filter_return_code(int r) const override {
33 // never propagate an error back to the caller
36 virtual void finish_request() {
41 * <start> ---> STATE_REQUEST ---> <finish>
44 * STATE_INVALIDATE -------/
56 } // namespace object_map
59 #endif // CEPH_LIBRBD_OBJECT_MAP_REQUEST_H