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_RESIZE_REQUEST_H
5 #define CEPH_LIBRBD_OBJECT_MAP_RESIZE_REQUEST_H
7 #include "include/int_types.h"
8 #include "librbd/object_map/Request.h"
9 #include "common/bit_vector.hpp"
17 namespace object_map {
19 class ResizeRequest : public Request {
21 ResizeRequest(ImageCtx &image_ctx, ceph::BitVector<2> *object_map,
22 uint64_t snap_id, uint64_t new_size,
23 uint8_t default_object_state, Context *on_finish)
24 : Request(image_ctx, snap_id, on_finish), m_object_map(object_map),
25 m_num_objs(0), m_new_size(new_size),
26 m_default_object_state(default_object_state)
30 static void resize(ceph::BitVector<2> *object_map, uint64_t num_objs,
31 uint8_t default_state);
36 void finish_request() override;
39 ceph::BitVector<2> *m_object_map;
42 uint8_t m_default_object_state;
45 } // namespace object_map
48 #endif // CEPH_LIBRBD_OBJECT_MAP_RESIZE_REQUEST_H