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> |
||
---|---|---|
.. | ||
clone.sh | ||
load-gen-big.sh | ||
load-gen-mix-small-long.sh | ||
load-gen-mix-small.sh | ||
load-gen-mix.sh | ||
load-gen-mostlyread.sh | ||
stress_watch.sh | ||
test.sh | ||
test_alloc_hint.sh | ||
test_cache_pool.sh | ||
test_envlibrados_for_rocksdb.sh | ||
test_hang.sh | ||
test_health_warnings.sh | ||
test_large_omap_detection.py | ||
test_pool_access.sh | ||
test_pool_quota.sh | ||
test_python.sh | ||
test_rados_timeouts.sh | ||
test_rados_tool.sh | ||
test_tmap_to_omap.sh |