* @param src_fadvise_flags the fadvise flags for source object
*/
void copy_from(const std::string& src, const IoCtx& src_ioctx,
- uint64_t src_version, uint32_t src_fadvise_flags);
+ uint64_t src_version);
+ void copy_from2(const std::string& src, const IoCtx& src_ioctx,
+ uint64_t src_version, uint32_t src_fadvise_flags);
/**
* undirty an object
/// Start enumerating objects for a pool
- NObjectIterator nobjects_begin(const bufferlist &filter=bufferlist());
+ NObjectIterator nobjects_begin();
+ NObjectIterator nobjects_begin(const bufferlist &filter);
/// Start enumerating objects for a pool starting from a hash position
+ NObjectIterator nobjects_begin(uint32_t start_hash_position);
NObjectIterator nobjects_begin(uint32_t start_hash_position,
- const bufferlist &filter=bufferlist());
+ const bufferlist &filter);
/// Iterator indicating the end of a pool
const NObjectIterator& nobjects_end() const;
}
void librados::ObjectWriteOperation::copy_from(const std::string& src,
- const IoCtx& src_ioctx,
- uint64_t src_version,
- uint32_t src_fadvise_flags)
+ const IoCtx& src_ioctx,
+ uint64_t src_version)
+{
+ copy_from2(src, src_ioctx, src_version, 0);
+}
+
+void librados::ObjectWriteOperation::copy_from2(const std::string& src,
+ const IoCtx& src_ioctx,
+ uint64_t src_version,
+ uint32_t src_fadvise_flags)
{
::ObjectOperation *o = (::ObjectOperation *)impl;
o->copy_from(object_t(src), src_ioctx.io_ctx_impl->snap_seq,
return tmp_lockers.size();
}
+librados::NObjectIterator librados::IoCtx::nobjects_begin()
+{
+ bufferlist bl;
+ return nobjects_begin(bl);
+}
+
librados::NObjectIterator librados::IoCtx::nobjects_begin(
const bufferlist &filter)
{
return iter;
}
+librados::NObjectIterator librados::IoCtx::nobjects_begin(uint32_t pos)
+{
+ bufferlist bl;
+ return nobjects_begin(pos, bl);
+}
+
librados::NObjectIterator librados::IoCtx::nobjects_begin(
uint32_t pos, const bufferlist &filter)
{
{
// pass future version
ObjectWriteOperation op;
- op.copy_from("foo", ioctx, uv + 1, LIBRADOS_OP_FLAG_FADVISE_DONTNEED);
+ op.copy_from2("foo", ioctx, uv + 1, LIBRADOS_OP_FLAG_FADVISE_DONTNEED);
ASSERT_EQ(-EOVERFLOW, ioctx.operate("foo.copy", &op));
}
{
// pass old version
ObjectWriteOperation op;
- op.copy_from("foo", ioctx, uv - 1, LIBRADOS_OP_FLAG_FADVISE_DONTNEED);
+ op.copy_from2("foo", ioctx, uv - 1, LIBRADOS_OP_FLAG_FADVISE_DONTNEED);
ASSERT_EQ(-ERANGE, ioctx.operate("foo.copy", &op));
}
{
ObjectWriteOperation op;
- op.copy_from("foo", ioctx, uv, LIBRADOS_OP_FLAG_FADVISE_DONTNEED);
+ op.copy_from2("foo", ioctx, uv, LIBRADOS_OP_FLAG_FADVISE_DONTNEED);
ASSERT_EQ(0, ioctx.operate("foo.copy", &op));
bufferlist bl2, x2;
// small object without a version
{
ObjectWriteOperation op;
- op.copy_from("foo", ioctx, 0, LIBRADOS_OP_FLAG_FADVISE_DONTNEED);
+ op.copy_from2("foo", ioctx, 0, LIBRADOS_OP_FLAG_FADVISE_DONTNEED);
ASSERT_EQ(0, ioctx.operate("foo.copy2", &op));
bufferlist bl2, x2;
{
ObjectWriteOperation op;
- op.copy_from("big", ioctx, ioctx.get_last_version(), LIBRADOS_OP_FLAG_FADVISE_DONTNEED);
+ op.copy_from2("big", ioctx, ioctx.get_last_version(), LIBRADOS_OP_FLAG_FADVISE_DONTNEED);
ASSERT_EQ(0, ioctx.operate("big.copy", &op));
bufferlist bl2, x2;
{
ObjectWriteOperation op;
- op.copy_from("big", ioctx, 0, LIBRADOS_OP_FLAG_FADVISE_SEQUENTIAL);
+ op.copy_from2("big", ioctx, 0, LIBRADOS_OP_FLAG_FADVISE_SEQUENTIAL);
ASSERT_EQ(0, ioctx.operate("big.copy2", &op));
bufferlist bl2, x2;
version_t uv = src_ioctx.get_last_version();
ObjectWriteOperation op;
- op.copy_from("foo", src_ioctx, uv, 0);
+ op.copy_from("foo", src_ioctx, uv);
ASSERT_EQ(-EOPNOTSUPP, ioctx.operate("foo.copy", &op));
}
{
ObjectWriteOperation op;
- op.copy_from("small", ioctx, 0, 0);
+ op.copy_from("small", ioctx, 0);
ASSERT_EQ(0, ioctx.operate("small.copy", &op));
}
{
ObjectWriteOperation op;
- op.copy_from("big", ioctx, 0, 0);
+ op.copy_from("big", ioctx, 0);
ASSERT_EQ(0, ioctx.operate("big.copy", &op));
}
{
ObjectWriteOperation op;
- op.copy_from("big2", ioctx, 0, 0);
+ op.copy_from("big2", ioctx, 0);
ASSERT_EQ(0, ioctx.operate("big2.copy", &op));
}
{
ObjectWriteOperation op;
- op.copy_from("big3", ioctx, 0, 0);
+ op.copy_from("big3", ioctx, 0);
ASSERT_EQ(0, ioctx.operate("big3.copy", &op));
}