libzypp 17.37.17
asyncresult.h File Reference
#include <zypp-core/zyppng/meta/TypeTraits>
#include <zypp-core/zyppng/meta/FunctionTraits>
#include <zypp-core/zyppng/meta/Functional>
#include <zypp-core/zyppng/async/AsyncOp>
Include dependency graph for asyncresult.h:

Go to the source code of this file.

Classes

struct  zyppng::detail::is_future_monad_cb< Callback, MsgType, typename >
struct  zyppng::detail::is_future_monad_cb< Callback, MsgType, std::void_t< std::enable_if_t< is_async_op_v< Callback > >, decltype(std::declval< remove_smart_ptr_t< Callback > >()(std::declval< MsgType >())) > >
struct  zyppng::detail::is_sync_monad_cb< Callback, MsgType, typename >
struct  zyppng::detail::is_sync_monad_cb< Callback, MsgType, std::void_t< std::enable_if_t< !is_async_op_v< Callback > >, std::enable_if_t< !std::is_same_v< void, decltype(std::declval< Callback >()(std::declval< MsgType >())) > > > >
struct  zyppng::detail::is_sync_monad_cb_with_async_res< Callback, MsgType, typename >
struct  zyppng::detail::is_sync_monad_cb_with_async_res< Callback, MsgType, std::void_t< std::enable_if_t< is_sync_monad_cb< Callback, MsgType >::value >, std::enable_if_t< callback_returns_async_op< Callback, MsgType >::value > > >
struct  zyppng::detail::is_sync_monad_cb_with_sync_res< Callback, MsgType, typename >
struct  zyppng::detail::is_sync_monad_cb_with_sync_res< Callback, MsgType, std::void_t< std::enable_if_t< is_sync_monad_cb< Callback, MsgType >::value >, std::enable_if_t< !callback_returns_async_op< Callback, MsgType >::value > > >
struct  zyppng::detail::is_nested_async< T >
struct  zyppng::detail::is_nested_async< AsyncOpRef< AsyncOpRef< T > > >
struct  zyppng::detail::AsyncToAsyncResult< PrevRes, CallbackOp, AOpRes >
struct  zyppng::detail::AsyncToSyncResult< PrevRes, Callback, std::enable_if_t< is_sync_monad_cb_with_sync_res_v< Callback, PrevRes > > >
struct  zyppng::detail::AsyncToSyncResult< PrevRes, Callback, std::enable_if_t< is_sync_monad_cb_with_async_res_v< Callback, PrevRes > > >

Namespaces

namespace  zyppng
namespace  zyppng::detail
namespace  zyppng::operators

Typedefs

template<typename Callback, typename Arg>
using zyppng::detail::callback_returns_async_op = is_async_op< std::invoke_result_t<Callback, Arg >>

Functions

template<typename PrevOp, typename Callback, std::enable_if_t< detail::is_async_op_v< PrevOp >, int > = 0, std::enable_if_t< detail::is_future_monad_cb_v< Callback, typename PrevOp::value_type >, int > = 0>
auto zyppng::operators::operator| (std::shared_ptr< PrevOp > &&in, std::shared_ptr< Callback > &&c) -> AsyncOpRef< typename Callback::value_type >
template<typename PrevOp, typename Callback, std::enable_if_t< detail::is_async_op_v< PrevOp >, int > = 0, std::enable_if_t< detail::is_sync_monad_cb_with_async_res_v< Callback, typename PrevOp::value_type >, int > = 0>
auto zyppng::operators::operator| (std::shared_ptr< PrevOp > &&in, Callback &&c)
template<typename PrevOp, typename Callback, std::enable_if_t< detail::is_async_op_v< PrevOp >, int > = 0, std::enable_if_t< detail::is_sync_monad_cb_with_sync_res_v< Callback, typename PrevOp::value_type >, int > = 0>
auto zyppng::operators::operator| (std::shared_ptr< PrevOp > &&in, Callback &&c)
template<typename PrevRes, typename CallbackOp, std::enable_if_t< !detail::is_async_op_v< PrevRes >, int > = 0, std::enable_if_t< detail::is_future_monad_cb_v< CallbackOp, PrevRes >, int > = 0>
auto zyppng::operators::operator| (PrevRes &&in, CallbackOp &&c) -> AsyncOpRef< typename remove_smart_ptr_t< CallbackOp >::value_type >
template<typename SyncRes, typename Callback, std::enable_if_t< !detail::is_async_op_v< SyncRes >, int > = 0, std::enable_if_t< detail::is_sync_monad_cb_v< Callback, SyncRes >, int > = 0>
auto zyppng::operators::operator| (SyncRes &&in, Callback &&c)

Variables

template<typename Callback, typename MsgType>
constexpr bool zyppng::detail::is_future_monad_cb_v = is_future_monad_cb<Callback, MsgType>::value
template<typename Callback, typename MsgType, typename = std::void_t<>>
constexpr bool zyppng::detail::is_sync_monad_cb_v = is_sync_monad_cb<Callback, MsgType>::value
template<typename Callback, typename Arg>
constexpr bool zyppng::detail::is_sync_monad_cb_with_async_res_v = is_sync_monad_cb_with_async_res<Callback, Arg>::value
template<typename Callback, typename Arg>
constexpr bool zyppng::detail::is_sync_monad_cb_with_sync_res_v = is_sync_monad_cb_with_sync_res<Callback, Arg>::value
template<typename T>
constexpr bool zyppng::detail::is_nested_async_v = is_nested_async<T>::value