5 #include <rados/librados.hpp>
12 typedef void (*logfunc_pointer) (
char *, ...);
34 int read(
void *out_buf,
size_t size, off64_t offset);
39 librados::AioCompletion *ptr;
43 ptr = librados::Rados::aio_create_completion();
45 throw std::bad_alloc();
50 this->wait_for_complete();
54 void wait_for_complete() {
55 ptr->wait_for_complete();
57 int get_return_value() {
58 return ptr->get_return_value();
60 librados::AioCompletion* use() {
70 librados::ObjectReadOperation ceph_read_op;
79 ReadOpData(
char* output_buf): out_buf(output_buf), rc(-1) {};
84 int addRequest(
size_t obj_idx,
char *out_buf,
size_t size, off64_t offset);
85 librados::IoCtx* context;
86 std::list<ReadOpData> buffers;
89 std::map<size_t, CephOpData> operations;
91 logfunc_pointer log_func;
int read(void *out_buf, size_t size, off64_t offset)
bulkAioRead(librados::IoCtx *ct, logfunc_pointer ptr, CephFileRef *fileref)
int submit_and_wait_for_complete()