Scroom 0.14-48-ga0fee447
Loading...
Searching...
No Matches
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 = std::shared_ptr< ProgressInterfaceBroadcaster >
 
- Public Types inherited from ProgressInterface
using Ptr = std::shared_ptr< ProgressInterface >
 
using WeakPtr = std::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 >
std::shared_ptr< R > shared_from_this ()
 
template<typename R >
std::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
127 {
129 children.insert(store);
130 }
static Ptr create()
Definition progressinterfacehelpers.cc:95
Detail::ProgressStore::Ptr store
Definition progressinterfacehelpers.hh:160
std::set< ProgressInterface::Ptr > children
Definition progressinterfacehelpers.hh:159

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
124{ return Ptr(new ProgressInterfaceBroadcaster()); }
std::shared_ptr< ProgressInterfaceBroadcaster > Ptr
Definition progressinterfacehelpers.hh:131
ProgressInterfaceBroadcaster()
Definition progressinterfacehelpers.cc:126
Here is the call graph for this function:

◆ setFinished()

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

Implements ProgressInterface.

174 {
175 boost::mutex::scoped_lock const lock(mut);
176 for(ProgressInterface::Ptr const& child: children)
177 {
178 child->setFinished();
179 }
180 }
std::shared_ptr< ProgressInterface > Ptr
Definition progressinterface.hh:20
boost::mutex mut
Definition progressinterfacehelpers.hh:158

◆ setIdle()

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

Implements ProgressInterface.

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

◆ setWaiting()

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

Implements ProgressInterface.

156 {
157 boost::mutex::scoped_lock const lock(mut);
158 for(ProgressInterface::Ptr const& child: children)
159 {
160 child->setWaiting(progress);
161 }
162 }
stub progress
Definition progressinterfaceconversion-tests.cc:65

◆ setWorking()

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

Implements ProgressInterface.

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

◆ subscribe()

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

◆ unsubscribe()

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

Friends And Related Symbol 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: