]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
librados: add rados_write_op_omap_rm_range2()
authorCasey Bodley <cbodley@redhat.com>
Sun, 21 May 2017 03:01:23 +0000 (23:01 -0400)
committerCasey Bodley <cbodley@redhat.com>
Tue, 6 Aug 2019 19:21:16 +0000 (15:21 -0400)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/include/rados/librados.h
src/librados/librados_c.cc
src/tracing/librados.tp

index d40666e45b570cfec306028310c422d35340f319..5b1e6c7dccceefb1015b6a2dc9b0b36593a35024 100644 (file)
@@ -3043,6 +3043,23 @@ CEPH_RADOS_API void rados_write_op_omap_rm_keys2(rados_write_op_t write_op,
                                                 const size_t* key_lens,
                                                 size_t keys_len);
 
+
+/**
+ * Remove key/value pairs from an object whose keys are in the range
+ * [key_begin, key_end)
+ *
+ * @param write_op operation to add this action to
+ * @param key_begin the lower bound of the key range to remove
+ * @param key_begin_len length of key_begin
+ * @param key_end the upper bound of the key range to remove
+ * @param key_end_len length of key_end
+ */
+CEPH_RADOS_API void rados_write_op_omap_rm_range2(rados_write_op_t write_op,
+                                                  const char *key_begin,
+                                                  size_t key_begin_len,
+                                                  const char *key_end,
+                                                  size_t key_end_len);
+
 /**
  * Remove all key/value pairs from an object
  *
index ac913d1ebdff07f8f93dd497679e73754674baef..117653b070a43d309a468f21f3d05eb34e8ee657 100644 (file)
@@ -3362,6 +3362,20 @@ extern "C" void _rados_write_op_omap_rm_keys2(rados_write_op_t write_op,
 }
 LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_omap_rm_keys2);
 
+extern "C" void _rados_write_op_omap_rm_range2(rados_write_op_t write_op,
+                                               const char *key_begin,
+                                               size_t key_begin_len,
+                                               const char *key_end,
+                                               size_t key_end_len)
+{
+  tracepoint(librados, rados_write_op_omap_rm_range_enter,
+             write_op, key_begin, key_end);
+  ((::ObjectOperation *)write_op)->omap_rm_range({key_begin, key_begin_len},
+                                                 {key_end, key_end_len});
+  tracepoint(librados, rados_write_op_omap_rm_range_exit);
+}
+LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_omap_rm_range2);
+
 extern "C" void _rados_write_op_omap_clear(rados_write_op_t write_op)
 {
   tracepoint(librados, rados_write_op_omap_clear_enter, write_op);
index 4921258dfa67570a0bde82b75b702d1dd12271df..4b2c55e06f7966f6467c70b8a07ec227e215841b 100644 (file)
@@ -3347,6 +3347,23 @@ TRACEPOINT_EVENT(librados, rados_write_op_omap_rm_keys_exit,
     TP_FIELDS()
 )
 
+TRACEPOINT_EVENT(librados, rados_write_op_omap_rm_range_enter,
+    TP_ARGS(
+        rados_write_op_t, op,
+        const char*, key_begin,
+        const char*, key_end),
+    TP_FIELDS(
+        ctf_integer_hex(rados_write_op_t, op, op)
+        ceph_ctf_string(key_begin, key_begin)
+        ceph_ctf_string(key_end, key_end)
+    )
+)
+
+TRACEPOINT_EVENT(librados, rados_write_op_omap_rm_range_exit,
+    TP_ARGS(),
+    TP_FIELDS()
+)
+
 TRACEPOINT_EVENT(librados, rados_write_op_omap_clear_enter,
     TP_ARGS(
         rados_write_op_t, op),