36namespace Experimental {
52 RDaosPool(std::string_view poolUuid, std::string_view serviceReplicas);
145 std::unique_ptr<daos_event_t[]>
fEvs;
168 template <
typename Fn>
174 requests.reserve(
vec.size());
175 for (
size_t i = 0; i <
vec.size(); ++i) {
176 requests.push_back(std::make_tuple(std::unique_ptr<RDaosObject>(
new RDaosObject(*
this,
vec[i].fOid, cid.
fCid)),
178 vec[i].fDistributionKey, vec[i].fAttributeKey,
179 vec[i].fIovs, &eventQueue.fEvs[i]}));
180 fn(std::get<0>(requests.back()).get(), std::get<1>(requests.back()));
182 ret = eventQueue.
Poll();
188 RDaosContainer(std::shared_ptr<RDaosPool> pool, std::string_view containerUuid,
bool create =
false);
void d_rank_list_free(d_rank_list_t *rank_list)
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
A RDaosContainer provides read/write access to objects in a given container.
void SetDefaultObjectClass(const ObjClassId_t cid)
std::shared_ptr< RDaosPool > fPool
ObjClassId_t GetDefaultObjectClass() const
int WriteSingleAkey(const void *buffer, std::size_t length, daos_obj_id_t oid, DistributionKey_t dkey, AttributeKey_t akey)
int ReadV(std::vector< RWOperation > &vec)
daos_handle_t fContainerHandle
int WriteV(std::vector< RWOperation > &vec)
int ReadSingleAkey(void *buffer, std::size_t length, daos_obj_id_t oid, DistributionKey_t dkey, AttributeKey_t akey, ObjClassId_t cid)
Read data from a single object attribute key to the given buffer.
RDaosObject::ObjClassId ObjClassId_t
RDaosObject::DistributionKey_t DistributionKey_t
int ReadSingleAkey(void *buffer, std::size_t length, daos_obj_id_t oid, DistributionKey_t dkey, AttributeKey_t akey)
RDaosObject::AttributeKey_t AttributeKey_t
ObjClassId_t fDefaultObjectClass
int WriteV(std::vector< RWOperation > &vec, ObjClassId_t cid)
Perform a vector write operation on (possibly) multiple objects.
int ReadV(std::vector< RWOperation > &vec, ObjClassId_t cid)
Perform a vector read operation on (possibly) multiple objects.
int WriteSingleAkey(const void *buffer, std::size_t length, daos_obj_id_t oid, DistributionKey_t dkey, AttributeKey_t akey, ObjClassId_t cid)
Write the given buffer to a single object attribute key.
int VectorReadWrite(std::vector< RWOperation > &vec, ObjClassId_t cid, Fn fn)
Perform a vector read/write operation on different objects.
Provides low-level access to DAOS objects in a container.
std::uint64_t DistributionKey_t
int Update(FetchUpdateArgs &args)
daos_handle_t fObjectHandle
std::uint64_t AttributeKey_t
int Fetch(FetchUpdateArgs &args)
A RDaosPool provides access to containers in a specific DAOS pool.
RDaosPool & operator=(const RDaosPool &)=delete
daos_handle_t fPoolHandle
RDaosPool(const RDaosPool &)=delete
This file is a reduced version of daos_xxx.h headers that provides (simplified) declarations for use ...
int daos_oclass_name2id(const char *name)
uint16_t daos_oclass_id_t
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
std::unique_ptr< daos_event_t[]> fEvs
int Poll()
Wait for all events in this event queue to complete.
Describes a read/write operation on multiple objects; see the ReadV/WriteV functions.
DistributionKey_t fDistributionKey
std::vector< d_iov_t > fIovs
AttributeKey_t fAttributeKey
RWOperation(daos_obj_id_t o, DistributionKey_t d, AttributeKey_t a, std::vector< d_iov_t > &v)
Contains required information for a single fetch/update operation.
FetchUpdateArgs & operator=(const FetchUpdateArgs &)=delete
FetchUpdateArgs()=default
std::vector< d_iov_t > fIovs
FetchUpdateArgs(const FetchUpdateArgs &)=delete
DistributionKey_t fDkey
A daos_key_t is a type alias of d_iov_t.
daos_key_t fDistributionKey
The distribution key, as used by the daos_obj_{fetch,update} functions.
Wrap around a daos_oclass_id_t.
std::string ToString() const
ObjClassId(const std::string &name)
ObjClassId(const ObjClassId &)=default
static constexpr std::size_t kOCNameMaxLength
This limit is currently not defined in any header and any call to daos_oclass_id2name() within DAOS u...
ObjClassId(daos_oclass_id_t cid)
Scatter/gather list for memory buffers.
Generic handle for various DAOS components like container, object, etc.