size_t *key_len,
size_t *val_len);
+/**
+ * Return number of elements in the iterator
+ *
+ * @param iter the iterator of which to return the size
+ */
+CEPH_RADOS_API unsigned int rados_omap_iter_size(rados_omap_iter_t iter);
+
/**
* Close the omap iterator.
*
return 0;
}
+extern "C" unsigned int rados_omap_iter_size(rados_omap_iter_t iter)
+{
+ RadosOmapIter *it = static_cast<RadosOmapIter *>(iter);
+ return it->values.size();
+}
+
extern "C" void rados_omap_get_end(rados_omap_iter_t iter)
{
tracepoint(librados, rados_omap_get_end_enter, iter);
char *key = NULL;
char *val = NULL;
size_t val_len = 0;
+ ASSERT_EQ(len, rados_omap_iter_size(iter));
while (i < len) {
ASSERT_EQ(0, rados_omap_get_next(iter, &key, &val, &val_len));
if (val_len == 0 && key == NULL && val == NULL)
char *val = NULL;
size_t key_len = 0;
size_t val_len = 0;
+ ASSERT_EQ(len, rados_omap_iter_size(iter));
while (i < len) {
ASSERT_EQ(0, rados_omap_get_next2(iter, &key, &val, &key_len, &val_len));
if (key_len == 0 && val_len == 0 && key == NULL && val == NULL)
rados_release_read_op(rop);
EXPECT_EQ(0, r_vals);
EXPECT_EQ(0, r_keys);
+ EXPECT_EQ(1, rados_omap_iter_size(iter_vals));
+ EXPECT_EQ(1, rados_omap_iter_size(iter_keys));
compare_omap_vals(&keys[2], &vals[2], &lens[2], 1, iter_vals);
compare_omap_vals(&keys[2], &vals[0], &lens[0], 1, iter_keys);