Scroom  0.14
Scroom::Utils::ProgressInterfaceBroadcaster Class Reference

#include <progressinterfacehelpers.hh>

Inheritance diagram for Scroom::Utils::ProgressInterfaceBroadcaster:
Inheritance graph
Collaboration diagram for Scroom::Utils::ProgressInterfaceBroadcaster:
Collaboration graph

Classes

class  Unsubscriber
 

Public Types

using Ptr = boost::shared_ptr< ProgressInterfaceBroadcaster >
 
- Public Types inherited from ProgressInterface
using Ptr = boost::shared_ptr< ProgressInterface >
 
using WeakPtr = boost::weak_ptr< ProgressInterface >
 

Public Member Functions

Stuff subscribe (ProgressInterface::Ptr const &child)
 
void setIdle () override
 
void setWaiting (double progress=0.0) override
 
void setWorking (double progress) override
 
void setFinished () override
 
- Public Member Functions inherited from Scroom::Utils::Base
 Base ()=default
 
 Base (const Base &)=delete
 
 Base (Base &&)=delete
 
Baseoperator= (const Base &)=delete
 
Baseoperator= (Base &&)=delete
 
virtual ~Base ()=default
 
template<typename R >
boost::shared_ptr< R > shared_from_this ()
 
template<typename R >
boost::shared_ptr< R const > shared_from_this () const
 

Static Public Member Functions

static Ptr create ()
 

Private Member Functions

 ProgressInterfaceBroadcaster ()
 
void unsubscribe (ProgressInterface::Ptr const &child)
 

Private Attributes

boost::mutex mut
 
std::set< ProgressInterface::Ptrchildren
 
Detail::ProgressStore::Ptr store
 

Friends

class Unsubscriber
 

Member Typedef Documentation

◆ Ptr

Constructor & Destructor Documentation

◆ ProgressInterfaceBroadcaster()

Scroom::Utils::ProgressInterfaceBroadcaster::ProgressInterfaceBroadcaster ( )
private
125  {
127  children.insert(store);
128  }

Referenced by create().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Function Documentation

◆ create()

ProgressInterfaceBroadcaster::Ptr Scroom::Utils::ProgressInterfaceBroadcaster::create ( )
static
122 { return Ptr(new ProgressInterfaceBroadcaster()); }

Referenced by BOOST_AUTO_TEST_CASE().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setFinished()

void Scroom::Utils::ProgressInterfaceBroadcaster::setFinished ( )
overridevirtual

Implements ProgressInterface.

172  {
173  boost::mutex::scoped_lock const lock(mut);
174  for(ProgressInterface::Ptr const& child: children)
175  {
176  child->setFinished();
177  }
178  }

◆ setIdle()

void Scroom::Utils::ProgressInterfaceBroadcaster::setIdle ( )
overridevirtual

Implements ProgressInterface.

145  {
146  boost::mutex::scoped_lock const lock(mut);
147  for(ProgressInterface::Ptr const& child: children)
148  {
149  child->setIdle();
150  }
151  }

◆ setWaiting()

void Scroom::Utils::ProgressInterfaceBroadcaster::setWaiting ( double  progress = 0.0)
overridevirtual

Implements ProgressInterface.

154  {
155  boost::mutex::scoped_lock const lock(mut);
156  for(ProgressInterface::Ptr const& child: children)
157  {
158  child->setWaiting(progress);
159  }
160  }

◆ setWorking()

void Scroom::Utils::ProgressInterfaceBroadcaster::setWorking ( double  progress)
overridevirtual

Implements ProgressInterface.

163  {
164  boost::mutex::scoped_lock const lock(mut);
165  for(ProgressInterface::Ptr const& child: children)
166  {
167  child->setWorking(progress);
168  }
169  }

◆ subscribe()

Stuff Scroom::Utils::ProgressInterfaceBroadcaster::subscribe ( ProgressInterface::Ptr const &  child)
131  {
132  boost::mutex::scoped_lock const lock(mut);
133  store->init(child);
134  children.insert(child);
135  return Unsubscriber::create(shared_from_this<ProgressInterfaceBroadcaster>(), child);
136  }
Here is the call graph for this function:

◆ unsubscribe()

void Scroom::Utils::ProgressInterfaceBroadcaster::unsubscribe ( ProgressInterface::Ptr const &  child)
private
139  {
140  boost::mutex::scoped_lock const lock(mut);
141  children.erase(child);
142  }

Friends And Related Function Documentation

◆ Unsubscriber

friend class Unsubscriber
friend

Member Data Documentation

◆ children

std::set<ProgressInterface::Ptr> Scroom::Utils::ProgressInterfaceBroadcaster::children
private

◆ mut

◆ store

Detail::ProgressStore::Ptr Scroom::Utils::ProgressInterfaceBroadcaster::store
private

The documentation for this class was generated from the following files:
Scroom::Utils::ProgressInterfaceBroadcaster::Unsubscriber::create
static Ptr create(ProgressInterfaceBroadcaster::Ptr const &parent, ProgressInterface::Ptr const &child)
Definition: progressinterfacehelpers.cc:183
ProgressInterface::Ptr
boost::shared_ptr< ProgressInterface > Ptr
Definition: progressinterface.hh:20
Scroom::Utils::ProgressInterfaceBroadcaster::children
std::set< ProgressInterface::Ptr > children
Definition: progressinterfacehelpers.hh:159
Scroom::Utils::ProgressInterfaceBroadcaster::ProgressInterfaceBroadcaster
ProgressInterfaceBroadcaster()
Definition: progressinterfacehelpers.cc:124
Scroom::Utils::ProgressInterfaceBroadcaster::mut
boost::mutex mut
Definition: progressinterfacehelpers.hh:158
Scroom::Utils::ProgressInterfaceBroadcaster::store
Detail::ProgressStore::Ptr store
Definition: progressinterfacehelpers.hh:160
Scroom::Utils::Detail::ProgressStore::create
static Ptr create()
Definition: progressinterfacehelpers.cc:93
Scroom::Utils::ProgressInterfaceBroadcaster::Ptr
boost::shared_ptr< ProgressInterfaceBroadcaster > Ptr
Definition: progressinterfacehelpers.hh:131