proxygen
folly::pushmi::receiver< Data, DVF, DEF, DDF > Class Template Reference

#include <receiver.h>

Public Types

using properties = property_set_insert_t< properties_t< Data >, property_set< is_receiver<>>>
 

Public Member Functions

constexpr receiver (Data d)
 
constexpr receiver (Data d, DDF df)
 
constexpr receiver (Data d, DEF ef, DDF df=DDF{})
 
constexpr receiver (Data d, DVF vf, DEF ef=DEF{}, DDF df=DDF{})
 
Datadata ()
 
requires Invocable< DVF &, Data &, VN... > void value (VN &&...vn)
 
requires Invocable< DEF &, Data &, E > void error (E e) noexcept
 
void done ()
 

Private Attributes

bool done_ = false
 
Data data_
 
DVF vf_
 
DEF ef_
 
DDF df_
 

Detailed Description

template<PUSHMI_TYPE_CONSTRAINT(Receiver) Data, class DVF, class DEF, class DDF>
class folly::pushmi::receiver< Data, DVF, DEF, DDF >

Definition at line 235 of file receiver.h.

Member Typedef Documentation

template<PUSHMI_TYPE_CONSTRAINT(Receiver) Data, class DVF , class DEF , class DDF >
using folly::pushmi::receiver< Data, DVF, DEF, DDF >::properties = property_set_insert_t<properties_t<Data>, property_set<is_receiver<>>>

Definition at line 257 of file receiver.h.

Constructor & Destructor Documentation

template<PUSHMI_TYPE_CONSTRAINT(Receiver) Data, class DVF , class DEF , class DDF >
constexpr folly::pushmi::receiver< Data, DVF, DEF, DDF >::receiver ( Data  d)
inlineexplicit

Definition at line 259 of file receiver.h.

260  : receiver(std::move(d), DVF{}, DEF{}, DDF{}) {}
constexpr detail::Map< Move > move
Definition: Base-inl.h:2567
template<PUSHMI_TYPE_CONSTRAINT(Receiver) Data, class DVF , class DEF , class DDF >
constexpr folly::pushmi::receiver< Data, DVF, DEF, DDF >::receiver ( Data  d,
DDF  df 
)
inline
template<PUSHMI_TYPE_CONSTRAINT(Receiver) Data, class DVF , class DEF , class DDF >
constexpr folly::pushmi::receiver< Data, DVF, DEF, DDF >::receiver ( Data  d,
DEF  ef,
DDF  df = DDF{} 
)
inline
template<PUSHMI_TYPE_CONSTRAINT(Receiver) Data, class DVF , class DEF , class DDF >
constexpr folly::pushmi::receiver< Data, DVF, DEF, DDF >::receiver ( Data  d,
DVF  vf,
DEF  ef = DEF{},
DDF  df = DDF{} 
)
inline

Member Function Documentation

template<PUSHMI_TYPE_CONSTRAINT(Receiver) Data, class DVF , class DEF , class DDF >
Data& folly::pushmi::receiver< Data, DVF, DEF, DDF >::data ( )
inline
template<PUSHMI_TYPE_CONSTRAINT(Receiver) Data, class DVF , class DEF , class DDF >
void folly::pushmi::receiver< Data, DVF, DEF, DDF >::done ( )
inline

Definition at line 290 of file receiver.h.

template<PUSHMI_TYPE_CONSTRAINT(Receiver) Data, class DVF , class DEF , class DDF >
requires Invocable<DEF&, Data&, E> void folly::pushmi::receiver< Data, DVF, DEF, DDF >::error ( E  e)
inlinenoexcept

Definition at line 282 of file receiver.h.

References folly::gen::move.

282  {
283  static_assert(
284  NothrowInvocable<DEF&, Data&, E>, "error function must be noexcept");
285  if (!done_) {
286  done_ = true;
287  ef_(data_, std::move(e));
288  }
289  }
constexpr detail::Map< Move > move
Definition: Base-inl.h:2567
template<PUSHMI_TYPE_CONSTRAINT(Receiver) Data, class DVF , class DEF , class DDF >
requires Invocable<DVF&, Data&, VN...> void folly::pushmi::receiver< Data, DVF, DEF, DDF >::value ( VN &&...  vn)
inline

Definition at line 274 of file receiver.h.

References folly::pushmi::PUSHMI_TEMPLATE(), and folly::pushmi::requires().

274  {
275  if (!done_) {
276  // done_ = true;
277  vf_(data_, (VN &&) vn...);
278  }
279  }

Member Data Documentation

template<PUSHMI_TYPE_CONSTRAINT(Receiver) Data, class DVF , class DEF , class DDF >
Data folly::pushmi::receiver< Data, DVF, DEF, DDF >::data_
private

Definition at line 237 of file receiver.h.

template<PUSHMI_TYPE_CONSTRAINT(Receiver) Data, class DVF , class DEF , class DDF >
DDF folly::pushmi::receiver< Data, DVF, DEF, DDF >::df_
private

Definition at line 240 of file receiver.h.

template<PUSHMI_TYPE_CONSTRAINT(Receiver) Data, class DVF , class DEF , class DDF >
bool folly::pushmi::receiver< Data, DVF, DEF, DDF >::done_ = false
private

Definition at line 236 of file receiver.h.

template<PUSHMI_TYPE_CONSTRAINT(Receiver) Data, class DVF , class DEF , class DDF >
DEF folly::pushmi::receiver< Data, DVF, DEF, DDF >::ef_
private

Definition at line 239 of file receiver.h.

template<PUSHMI_TYPE_CONSTRAINT(Receiver) Data, class DVF , class DEF , class DDF >
DVF folly::pushmi::receiver< Data, DVF, DEF, DDF >::vf_
private

Definition at line 238 of file receiver.h.


The documentation for this class was generated from the following file: