proxygen
wangle::Subscription< T > Class Template Reference

#include <Subscription.h>

Public Member Functions

 Subscription ()=default
 
 Subscription (const Subscription &)=delete
 
 Subscription (Subscription &&other) noexcept
 
Subscriptionoperator= (Subscription &&other) noexcept
 
 ~Subscription ()
 

Private Types

typedef Observable< T >::Unsubscriber Unsubscriber
 

Private Member Functions

 Subscription (std::shared_ptr< Unsubscriber > unsubscriber, uint64_t id)
 
void unsubscribe ()
 

Private Attributes

std::shared_ptr< Unsubscriberunsubscriber_
 
uint64_t id_ {0}
 

Friends

class Observable< T >
 

Detailed Description

template<class T>
class wangle::Subscription< T >

Definition at line 27 of file Subscription.h.

Member Typedef Documentation

template<class T>
typedef Observable<T>::Unsubscriber wangle::Subscription< T >::Unsubscriber
private

Definition at line 51 of file Subscription.h.

Constructor & Destructor Documentation

template<class T>
wangle::Subscription< T >::Subscription ( )
default
template<class T>
wangle::Subscription< T >::Subscription ( const Subscription< T > &  )
delete
template<class T>
wangle::Subscription< T >::Subscription ( Subscription< T > &&  other)
inlinenoexcept

Definition at line 33 of file Subscription.h.

References folly::gen::move.

33  {
34  *this = std::move(other);
35  }
constexpr detail::Map< Move > move
Definition: Base-inl.h:2567
template<class T>
wangle::Subscription< T >::~Subscription ( )
inline

Definition at line 46 of file Subscription.h.

References wangle::Subscription< T >::unsubscribe().

46  {
47  unsubscribe();
48  }
template<class T>
wangle::Subscription< T >::Subscription ( std::shared_ptr< Unsubscriber unsubscriber,
uint64_t  id 
)
inlineprivate

Definition at line 53 of file Subscription.h.

References wangle::Subscription< T >::id_.

54  : unsubscriber_(std::move(unsubscriber)), id_(id) {
55  CHECK(id_ > 0);
56  }
constexpr detail::Map< Move > move
Definition: Base-inl.h:2567
std::shared_ptr< Unsubscriber > unsubscriber_
Definition: Subscription.h:66

Member Function Documentation

template<class T>
Subscription& wangle::Subscription< T >::operator= ( Subscription< T > &&  other)
inlinenoexcept

Definition at line 37 of file Subscription.h.

References wangle::Subscription< T >::id_, folly::gen::move, wangle::Subscription< T >::unsubscribe(), and wangle::Subscription< T >::unsubscriber_.

37  {
38  unsubscribe();
39  unsubscriber_ = std::move(other.unsubscriber_);
40  id_ = other.id_;
41  other.unsubscriber_ = nullptr;
42  other.id_ = 0;
43  return *this;
44  }
constexpr detail::Map< Move > move
Definition: Base-inl.h:2567
std::shared_ptr< Unsubscriber > unsubscriber_
Definition: Subscription.h:66
template<class T>
void wangle::Subscription< T >::unsubscribe ( )
inlineprivate

Definition at line 58 of file Subscription.h.

References wangle::Subscription< T >::id_, and wangle::Subscription< T >::unsubscriber_.

Referenced by wangle::Subscription< T >::operator=(), and wangle::Subscription< T >::~Subscription().

58  {
59  if (unsubscriber_ && id_ > 0) {
60  unsubscriber_->unsubscribe(id_);
61  id_ = 0;
62  unsubscriber_ = nullptr;
63  }
64  }
std::shared_ptr< Unsubscriber > unsubscriber_
Definition: Subscription.h:66

Friends And Related Function Documentation

template<class T>
friend class Observable< T >
friend

Definition at line 69 of file Subscription.h.

Member Data Documentation

template<class T>
std::shared_ptr<Unsubscriber> wangle::Subscription< T >::unsubscriber_
private

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