Scroom  0.14
Scroom::Utils::Detail::Registration< T > Class Template Reference

#include <observable.hh>

Collaboration diagram for Scroom::Utils::Detail::Registration< T >:
Collaboration graph

Public Types

using Ptr = boost::shared_ptr< Registration< T > >
 

Public Member Functions

 Registration ()=default
 
 Registration (boost::weak_ptr< Observable< T >> observable, boost::shared_ptr< T > observer)
 
 Registration (boost::weak_ptr< Observable< T >> observable, boost::weak_ptr< T > observer)
 
void set (boost::shared_ptr< T > observer)
 
void set (boost::weak_ptr< T > observer)
 

Static Public Member Functions

static Ptr create (boost::weak_ptr< Observable< T >> observable, boost::shared_ptr< T > observer)
 
static Ptr create (boost::weak_ptr< Observable< T >> observable, boost::weak_ptr< T > observer)
 

Public Attributes

boost::weak_ptr< Observable< T > > observable
 
boost::shared_ptr< T > o
 
boost::weak_ptr< T > observer
 

Detailed Description

template<typename T>
class Scroom::Utils::Detail::Registration< T >

Contain all info regarding the registration.

Performs de-registration on destruction

Member Typedef Documentation

◆ Ptr

template<typename T >
using Scroom::Utils::Detail::Registration< T >::Ptr = boost::shared_ptr<Registration<T> >

Constructor & Destructor Documentation

◆ Registration() [1/3]

template<typename T >
Scroom::Utils::Detail::Registration< T >::Registration ( )
default

◆ Registration() [2/3]

template<typename T >
Scroom::Utils::Detail::Registration< T >::Registration ( boost::weak_ptr< Observable< T >>  observable,
boost::shared_ptr< T >  observer 
)
125  : observable(std::move(observable_))
126  , o(observer_)
127  , observer(observer_)
128  {
129  }

◆ Registration() [3/3]

template<typename T >
Scroom::Utils::Detail::Registration< T >::Registration ( boost::weak_ptr< Observable< T >>  observable,
boost::weak_ptr< T >  observer 
)
133  : observable(std::move(observable_))
134  , o()
135  , observer(std::move(observer_))
136  {
137  // We don't want to store a "hard" reference, so field o is intentionally empty.
138  }

Member Function Documentation

◆ create() [1/2]

template<typename T >
Detail::Registration< T >::Ptr Scroom::Utils::Detail::Registration< T >::create ( boost::weak_ptr< Observable< T >>  observable,
boost::shared_ptr< T >  observer 
)
static
158  {
159  return typename Detail::Registration<T>::Ptr(new Detail::Registration<T>(observable, observer));
160  }

Referenced by Scroom::Utils::Observable< TileLoadingObserver >::registerObserver(), and Scroom::Utils::Observable< TileLoadingObserver >::registerStrongObserver().

Here is the caller graph for this function:

◆ create() [2/2]

template<typename T >
Detail::Registration< T >::Ptr Scroom::Utils::Detail::Registration< T >::create ( boost::weak_ptr< Observable< T >>  observable,
boost::weak_ptr< T >  observer 
)
static
165  {
166  return typename Detail::Registration<T>::Ptr(new Detail::Registration<T>(observable, observer));
167  }

◆ set() [1/2]

template<typename T >
void Scroom::Utils::Detail::Registration< T >::set ( boost::shared_ptr< T >  observer)
142  {
143  o = observer_;
144  observer = observer_;
145  }

Referenced by Scroom::Utils::Observable< TileLoadingObserver >::registerObserver(), and Scroom::Utils::Observable< TileLoadingObserver >::registerStrongObserver().

Here is the caller graph for this function:

◆ set() [2/2]

template<typename T >
void Scroom::Utils::Detail::Registration< T >::set ( boost::weak_ptr< T >  observer)
149  {
150  // We don't want to store a "hard" reference, so field o is intentionally empty.
151  o.reset();
152  observer = observer_;
153  }

Member Data Documentation

◆ o

template<typename T >
boost::shared_ptr<T> Scroom::Utils::Detail::Registration< T >::o

Reference to the observer (for non-weak registrations)

◆ observable

template<typename T >
boost::weak_ptr<Observable<T> > Scroom::Utils::Detail::Registration< T >::observable

◆ observer

template<typename T >
boost::weak_ptr<T> Scroom::Utils::Detail::Registration< T >::observer

Reference to the observer


The documentation for this class was generated from the following file:
Scroom::Utils::Detail::Registration::observable
boost::weak_ptr< Observable< T > > observable
Definition: observable.hh:37
Scroom::Utils::Detail::Registration::observer
boost::weak_ptr< T > observer
Definition: observable.hh:39
Scroom::Utils::Detail::Registration::Ptr
boost::shared_ptr< Registration< T > > Ptr
Definition: observable.hh:41
Scroom::Utils::Detail::Registration::o
boost::shared_ptr< T > o
Definition: observable.hh:38