mirror of https://github.com/ceph/ceph
f473d57013
Defines asynchronous librados operations that satisfy all of the "Requirements on asynchronous operations" imposed by the C++ Networking TS [1] in section 13.2.7. These operations are implemented in terms of boost::asio, but the interfaces themselves are free of boost types - this makes the transition to std::net trivial when it's available. These interfaces conform to the Extensible Asynchronous Model [2] that originated in boost::asio. This model allows the last 'handler' argument to either be a callback that gets the result, a coroutine yield_context that will suspend until completion, or a 'use_future' tag to request the result in a std::future (see the unit tests for examples of each). The 'Extensible' part also enables further integration with new frameworks. For now, only async_read(), async_write(), and the read/write variants of async_operate() are provided. [1] Working Draft, C++ Extensions for Networking http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4711.pdf [2] "Library Foundations for Asynchronous Operations" http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3896.pdf Signed-off-by: Casey Bodley <cbodley@redhat.com> |
||
---|---|---|
.. | ||
caps | ||
ceph-disk | ||
ceph-tests | ||
cephtool | ||
cls | ||
direct_io | ||
erasure-code | ||
fs | ||
hadoop | ||
libcephfs | ||
libcephfs-java | ||
mgr | ||
mon | ||
objectstore | ||
osdc | ||
rados | ||
rbd | ||
rename | ||
rest | ||
restart | ||
rgw | ||
suites | ||
Makefile | ||
ceph-helpers-root.sh | ||
false.sh | ||
kernel_untar_build.sh | ||
post-file.sh | ||
true.sh |