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);
+ // deprecated versions
+ uint32_t get_object_hash_position(const std::string& oid)
+ __attribute__ ((deprecated));
+ uint32_t get_object_pg_hash_position(const std::string& oid)
+ __attribute__ ((deprecated));
+
+ int get_object_hash_position2(const std::string& oid, uint32_t *hash_position);
+ int get_object_pg_hash_position2(const std::string& oid, uint32_t *pg_hash_position);
config_t cct();
return 0;
}
-uint32_t librados::IoCtxImpl::get_object_hash_position(const std::string& oid)
+int librados::IoCtxImpl::get_object_hash_position(
+ const std::string& oid, uint32_t *hash_position)
{
- return objecter->get_object_hash_position(poolid, oid, oloc.nspace);
+ int64_t r = objecter->get_object_hash_position(poolid, oid, oloc.nspace);
+ if (r < 0)
+ return r;
+ *hash_position = (uint32_t)r;
+ return 0;
}
-uint32_t librados::IoCtxImpl::get_object_pg_hash_position(const std::string& oid)
+int librados::IoCtxImpl::get_object_pg_hash_position(
+ const std::string& oid, uint32_t *pg_hash_position)
{
- return objecter->get_object_pg_hash_position(poolid, oid, oloc.nspace);
+ int64_t r = objecter->get_object_pg_hash_position(poolid, oid, oloc.nspace);
+ if (r < 0)
+ return r;
+ *pg_hash_position = (uint32_t)r;
+ return 0;
}
void librados::IoCtxImpl::queue_aio_write(AioCompletionImpl *c)
const string& get_cached_pool_name();
- uint32_t get_object_hash_position(const std::string& oid);
- uint32_t get_object_pg_hash_position(const std::string& oid);
+ int get_object_hash_position(const std::string& oid, uint32_t *hash_postion);
+ int get_object_pg_hash_position(const std::string& oid, uint32_t *pg_hash_position);
::ObjectOperation *prepare_assert_ops(::ObjectOperation *op);
uint32_t librados::IoCtx::get_object_hash_position(const std::string& oid)
{
- return io_ctx_impl->get_object_hash_position(oid);
+ uint32_t hash;
+ int r = io_ctx_impl->get_object_hash_position(oid, &hash);
+ if (r < 0)
+ hash = 0;
+ return hash;
}
uint32_t librados::IoCtx::get_object_pg_hash_position(const std::string& oid)
{
- return io_ctx_impl->get_object_pg_hash_position(oid);
+ uint32_t hash;
+ int r = io_ctx_impl->get_object_pg_hash_position(oid, &hash);
+ if (r < 0)
+ hash = 0;
+ return hash;
+}
+
+int librados::IoCtx::get_object_hash_position2(
+ const std::string& oid, uint32_t *hash_position)
+{
+ return io_ctx_impl->get_object_hash_position(oid, hash_position);
+}
+
+int librados::IoCtx::get_object_pg_hash_position2(
+ const std::string& oid, uint32_t *pg_hash_position)
+{
+ return io_ctx_impl->get_object_pg_hash_position(oid, pg_hash_position);
}
librados::config_t librados::IoCtx::cct()