Observable Reference
Generic observable objects for C++
Public Member Functions | List of all members
observable::infinite_subscription Class Reference

Description

Infinite subscription that will not unsubscribe the associated observer when destroyed.

Public Member Functions

 infinite_subscription (std::function< void()> const &unsubscribe)
 Create a subscription with the specified unsubscribe functor. More...
 
void unsubscribe ()
 Unsubscribe the associated observer from receiving notifications. More...
 
auto release ()
 Disassociate the subscription from the subscribed observer. More...
 
 infinite_subscription ()=default
 This class is default-constructible. More...
 
 infinite_subscription (infinite_subscription const &)=delete
 This class is not copy-constructible. More...
 
auto operator= (infinite_subscription const &) -> infinite_subscription &=delete
 This class is not copy-assignable. More...
 
 infinite_subscription (infinite_subscription &&)=default
 This class is move-constructible. More...
 
auto operator= (infinite_subscription &&) -> infinite_subscription &=default
 This class is move-assignable. More...
 

Constructor & Destructor Documentation

◆ infinite_subscription() [1/4]

observable::infinite_subscription::infinite_subscription ( std::function< void()> const &  unsubscribe)
inlineexplicit

Create a subscription with the specified unsubscribe functor.

Parameters
[in]unsubscribeCalling this functor will unsubscribe the associated observer.
Note
This is for internal use by subject instances.

◆ infinite_subscription() [2/4]

observable::infinite_subscription::infinite_subscription ( )
default

This class is default-constructible.

◆ infinite_subscription() [3/4]

observable::infinite_subscription::infinite_subscription ( infinite_subscription const &  )
delete

This class is not copy-constructible.

◆ infinite_subscription() [4/4]

observable::infinite_subscription::infinite_subscription ( infinite_subscription &&  )
default

This class is move-constructible.

Member Function Documentation

◆ unsubscribe()

void observable::infinite_subscription::unsubscribe ( )
inline

Unsubscribe the associated observer from receiving notifications.

Only the first call of this method will have an effect.

Note
If release() has been called, this method will have no effect.

◆ release()

auto observable::infinite_subscription::release ( )
inline

Disassociate the subscription from the subscribed observer.

After calling this method, calling unsubscribe() or destroying the subscription instance will have no effect.

Returns
Functor taking no parameters that will perform the unsubscribe when called. For example: subscription.release()() is equivalent to subscription.unsubscribe().

◆ operator=() [1/2]

auto observable::infinite_subscription::operator= ( infinite_subscription const &  ) -> infinite_subscription &=delete
delete

This class is not copy-assignable.

◆ operator=() [2/2]

auto observable::infinite_subscription::operator= ( infinite_subscription &&  ) -> infinite_subscription &=default
default

This class is move-assignable.