diff options
author | Sage Weil <sage@inktank.com> | 2013-10-11 15:34:33 -0700 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-10-22 13:45:39 -0700 |
commit | 9aaffbc0802d69f35d79d2d6d535a23d5a71525b (patch) | |
tree | 27660d7f313a57a1e09e0e7d255c0e4befeee4d8 | |
parent | 35f0b043d7ed6fe257d0a7a2234fe94dd54f4d9e (diff) | |
download | ceph-9aaffbc0802d69f35d79d2d6d535a23d5a71525b.tar.gz |
librados: expose methods for calculating object hash position
Signed-off-by: Sage Weil <sage@inktank.com>
-rw-r--r-- | src/include/rados/librados.hpp | 3 | ||||
-rw-r--r-- | src/librados/IoCtxImpl.cc | 12 | ||||
-rw-r--r-- | src/librados/IoCtxImpl.h | 3 | ||||
-rw-r--r-- | src/librados/librados.cc | 10 |
4 files changed, 28 insertions, 0 deletions
diff --git a/src/include/rados/librados.hpp b/src/include/rados/librados.hpp index 25e96210b15..436c9a60418 100644 --- a/src/include/rados/librados.hpp +++ b/src/include/rados/librados.hpp @@ -741,6 +741,9 @@ namespace librados int64_t get_id(); + uint32_t get_object_hash_position(const std::string& oid); + uint32_t get_object_pg_hash_position(const std::string& oid); + config_t cct(); private: diff --git a/src/librados/IoCtxImpl.cc b/src/librados/IoCtxImpl.cc index ae943f8bc92..49a61173cc1 100644 --- a/src/librados/IoCtxImpl.cc +++ b/src/librados/IoCtxImpl.cc @@ -64,6 +64,18 @@ int librados::IoCtxImpl::set_snap_write_context(snapid_t seq, vector<snapid_t>& return 0; } +uint32_t librados::IoCtxImpl::get_object_hash_position(const std::string& oid) +{ + Mutex::Locker l(*lock); + return objecter->get_object_hash_position(poolid, oid, oloc.nspace); +} + +uint32_t librados::IoCtxImpl::get_object_pg_hash_position(const std::string& oid) +{ + Mutex::Locker l(*lock); + return objecter->get_object_pg_hash_position(poolid, oid, oloc.nspace); +} + void librados::IoCtxImpl::queue_aio_write(AioCompletionImpl *c) { get(); diff --git a/src/librados/IoCtxImpl.h b/src/librados/IoCtxImpl.h index 6137ba91257..7d7cf3722c7 100644 --- a/src/librados/IoCtxImpl.h +++ b/src/librados/IoCtxImpl.h @@ -91,6 +91,9 @@ struct librados::IoCtxImpl { return poolid; } + uint32_t get_object_hash_position(const std::string& oid); + uint32_t get_object_pg_hash_position(const std::string& oid); + ::ObjectOperation *prepare_assert_ops(::ObjectOperation *op); // snaps diff --git a/src/librados/librados.cc b/src/librados/librados.cc index 4a16704abd9..738c3224afe 100644 --- a/src/librados/librados.cc +++ b/src/librados/librados.cc @@ -1333,6 +1333,16 @@ int64_t librados::IoCtx::get_id() return io_ctx_impl->get_id(); } +uint32_t librados::IoCtx::get_object_hash_position(const std::string& oid) +{ + return io_ctx_impl->get_object_hash_position(oid); +} + +uint32_t librados::IoCtx::get_object_pg_hash_position(const std::string& oid) +{ + return io_ctx_impl->get_object_pg_hash_position(oid); +} + librados::config_t librados::IoCtx::cct() { return (config_t)io_ctx_impl->client->cct; |