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_IMAGE_GET_METADATA_REQUEST_H
5 #define CEPH_LIBRBD_IMAGE_GET_METADATA_REQUEST_H
7 #include "include/common_fwd.h"
8 #include "include/rados/librados.hpp"
9 #include "include/rbd/librbd.hpp"
21 template <typename ImageCtxT
= ImageCtx
>
22 class GetMetadataRequest
{
24 typedef std::map
<std::string
, bufferlist
> KeyValues
;
26 static GetMetadataRequest
* create(
27 IoCtx
&io_ctx
, const std::string
&oid
, bool filter_internal
,
28 const std::string
& filter_key_prefix
, const std::string
& last_key
,
29 uint32_t max_results
, KeyValues
* key_values
, Context
*on_finish
) {
30 return new GetMetadataRequest(io_ctx
, oid
, filter_internal
,
31 filter_key_prefix
, last_key
, max_results
,
32 key_values
, on_finish
);
36 IoCtx
&io_ctx
, const std::string
&oid
, bool filter_internal
,
37 const std::string
& filter_key_prefix
, const std::string
& last_key
,
38 uint32_t max_results
, KeyValues
* key_values
, Context
*on_finish
);
58 librados::IoCtx m_io_ctx
;
60 bool m_filter_internal
;
61 std::string m_filter_key_prefix
;
62 std::string m_last_key
;
63 uint32_t m_max_results
;
64 KeyValues
* m_key_values
;
69 uint32_t m_expected_results
= 0;
72 void handle_metadata_list(int r
);
81 extern template class librbd::image::GetMetadataRequest
<librbd::ImageCtx
>;
83 #endif // CEPH_LIBRBD_IMAGE_GET_METADATA_REQUEST_H