#include <once_sender.h>
Public Member Functions | |
OnceRefSender (OnceRefSender &&other) | |
OnceRefSender (const OnceRefSender &)=delete | |
OnceRefSender & | operator= (const OnceRefSender &)=delete |
OnceRefSender & | operator= (OnceRefSender &&other)=delete |
void | Set (const T &value) |
Copy assigns the reference and awakens the receiver. | |
void | Set (T &&value) |
Move assigns the reference and awakens the receiver. | |
void | ModifyUnsafe (pw::Function< void(T &)> func) |
void | Commit () |
Friends | |
class | OnceRefReceiver< T > |
template<typename U > | |
std::pair< OnceRefSender< U >, OnceRefReceiver< U > > | MakeOnceRefSenderAndReceiver (U &) |
template<typename U > | |
void | InitializeOnceRefSenderAndReceiver (OnceRefSender< U > &sender, OnceRefReceiver< U > &receiver, U &value) |
OnceRefSender
mutates the reference received by the OnceReceiver
it is constructed with. It must be constructed using MakeOnceRefSenderAndReceiver
. OnceRefSender
is thread safe and may be used on a different thread than OnceRefReceiver
.
|
inline |
When using ModifyUnsafe()
, call Commit()
after all modifications have been made to awaken the OnceRefReceiver
.
|
inline |
Care must be taken not to save the reference passed to func
or to call any other Once*Sender/Once*Receiver APIs from within func
. This should be a simple modification. After all modifications are complete, Commit
should be called.