52            return owned_by_ == 
nullptr;
 
   77            if( iteration_count_ == 0 )
 
   84            return iteration_count_ != 0;
 
   90            assert( !is_iterating() );
 
   91            observers_.push_back( observer );
 
  126    LINK::LINK( std::shared_ptr<DETAIL::OBSERVABLE_BASE::IMPL> token, 
void* observer )
 
 
  135        other.token_.reset();
 
 
  141        token_ = std::move( other.token_ );
 
  142        other.token_.reset();
 
 
  148    LINK::operator bool()
 const 
  150        return token_ ? true : 
false;
 
 
  191                impl_ = std::make_shared<IMPL>( 
this );
 
 
  198                impl_ = std::make_shared<IMPL>();
 
 
  219            impl_->add_observer( observer );
 
 
  226            impl_->remove_observer( observer );
 
 
 
  233                impl_->enter_iteration();
 
 
  241                impl_->leave_iteration();
 
  243                if( !
impl_->is_iterating() && !
impl_->is_shared() && 
impl_.use_count() == 1 )
 
 
  252                return impl_->observers_.size();
 
 
 
 
 
 
 
 
 
 
 
 
 
void operator=(const LINK &)=delete
 
std::shared_ptr< DETAIL::OBSERVABLE_BASE::IMPL > token_
 
A model subscriber implementation using links to represent connections.
 
bool is_iterating() const
 
void remove_observer(void *observer)
 
void add_observer(void *observer)
 
std::vector< void * > observers_
 
OBSERVABLE_BASE * owned_by_
 
IMPL(OBSERVABLE_BASE *owned_by=nullptr)
 
unsigned int iteration_count_
 
void remove_observer(void *observer)
 
std::shared_ptr< IMPL > get_shared_impl()
 
void add_observer(void *observer)
 
void on_observers_empty()
 
void allocate_shared_impl()
 
std::shared_ptr< IMPL > impl_
 
bool operator()(const T &val) const