From 7a4c6359e483f8c71276ece5cde16eb0771ac5d2 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Tue, 28 Jul 2020 22:39:21 +0800 Subject: [PATCH] crimson/osd: implement cls_cxx_map_get_vals() Signed-off-by: Kefu Chai --- src/crimson/osd/objclass.cc | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/crimson/osd/objclass.cc b/src/crimson/osd/objclass.cc index 9c02c5c746ee..0e9d53c2b539 100644 --- a/src/crimson/osd/objclass.cc +++ b/src/crimson/osd/objclass.cc @@ -291,6 +291,24 @@ int cls_cxx_map_get_vals(cls_method_context_t hctx, return vals->size(); } +int cls_cxx_map_get_vals(cls_method_context_t hctx, + const std::set &keys, + std::map *vals) +{ + OSDOp op{CEPH_OSD_OP_OMAPGETVALSBYKEYS}; + encode(keys, op.indata); + if (const auto ret = execute_osd_op(hctx, op); ret < 0) { + return ret; + } + try { + auto iter = op.outdata.cbegin(); + decode(*vals, iter); + } catch (buffer::error&) { + return -EIO; + } + return 0; +} + int cls_cxx_map_read_header(cls_method_context_t hctx, bufferlist *outbl) { OSDOp op{CEPH_OSD_OP_OMAPGETHEADER}; -- 2.47.3