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

Description

Unsubscribe the associated observer when destroyed.

Note
All methods of this class can be safely called in parallel, from multiple threads.

Public Member Functions

 unique_subscription ()=default
 Create an empty subscription. More...
 
 unique_subscription (infinite_subscription &&sub)
 Create an unique subscription from an infinite_subscription. More...
 
 ~unique_subscription ()
 Destructor. More...
 
 unique_subscription (unique_subscription const &)=delete
 This class is not copy-constructible. More...
 
auto operator= (unique_subscription const &) -> unique_subscription &=delete
 This class is not copy-assignable. More...
 
 unique_subscription (unique_subscription &&)=default
 This class is move-constructible. More...
 
auto operator= (unique_subscription &&) -> unique_subscription &=default
 This class is move-assignable. More...
 
- Public Member Functions inherited from observable::infinite_subscription
 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

◆ unique_subscription() [1/4]

observable::unique_subscription::unique_subscription ( )
default

Create an empty subscription.

Note
Calling unsubscribe on an empty subscription will have no effect.

◆ unique_subscription() [2/4]

observable::unique_subscription::unique_subscription ( infinite_subscription &&  sub)
inline

Create an unique subscription from an infinite_subscription.

Parameters
[in]subAn infinite subscription that will be converted to an unique_subscription.

◆ ~unique_subscription()

observable::unique_subscription::~unique_subscription ( )
inline

Destructor.

Will call unsubscribe().

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

◆ unique_subscription() [3/4]

observable::unique_subscription::unique_subscription ( unique_subscription const &  )
delete

This class is not copy-constructible.

◆ unique_subscription() [4/4]

observable::unique_subscription::unique_subscription ( unique_subscription &&  )
default

This class is move-constructible.

Member Function Documentation

◆ operator=() [1/2]

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

This class is not copy-assignable.

◆ operator=() [2/2]

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

This class is move-assignable.