Scroom  0.14
function-additor.hh
Go to the documentation of this file.
1 /*
2  * Scroom - Generic viewer for 2D data
3  * Copyright (C) 2009-2022 Kees-Jan Dijkzeul
4  *
5  * SPDX-License-Identifier: LGPL-2.1
6  */
7 
8 #pragma once
9 
10 #include <list>
11 
12 #include <boost/function.hpp>
13 
15 {
17  {
18  private:
19  std::list<boost::function<void()>> functions;
20 
21  public:
22  void addBefore(boost::function<void()> const& fn);
23  void addAfter(boost::function<void()> const& fn);
24 
25  FunctionAdditor& operator+(boost::function<void()> const& fn);
26  FunctionAdditor& operator+=(boost::function<void()> const& fn);
27  void operator()();
28  };
29 
31  {
32  private:
33  boost::function<void()> f;
34  unsigned int i;
35 
36  public:
37  FunctionMultiplier(boost::function<void()> f_, unsigned int i_);
38 
39  FunctionMultiplier& operator*(unsigned int i);
40  void operator()();
41  };
42 } // namespace Scroom::Detail::ThreadPool
43 
44 Scroom::Detail::ThreadPool::FunctionAdditor operator+(boost::function<void()> const& f1, boost::function<void()> const& f2);
45 Scroom::Detail::ThreadPool::FunctionAdditor& operator+(boost::function<void()> const& f1,
48 Scroom::Detail::ThreadPool::FunctionMultiplier operator*(unsigned int i, boost::function<void()> const& f);
49 Scroom::Detail::ThreadPool::FunctionMultiplier operator*(boost::function<void()> const& f, unsigned int i);
Scroom::Detail::ThreadPool::FunctionAdditor::addAfter
void addAfter(boost::function< void()> const &fn)
Definition: function-additor.cc:12
Scroom::Detail::ThreadPool::FunctionMultiplier::FunctionMultiplier
FunctionMultiplier(boost::function< void()> f_, unsigned int i_)
Definition: function-additor.cc:40
Scroom::Detail::ThreadPool::FunctionMultiplier::i
unsigned int i
Definition: function-additor.hh:34
Scroom::Detail::ThreadPool::FunctionMultiplier::operator()
void operator()()
Definition: function-additor.cc:52
Scroom::Detail::ThreadPool::FunctionAdditor::operator+
FunctionAdditor & operator+(boost::function< void()> const &fn)
Definition: function-additor.cc:15
Scroom::Detail::ThreadPool::FunctionAdditor
Definition: function-additor.hh:16
Scroom::Detail::ThreadPool
Definition: async-deleter.hh:21
Scroom::Detail::ThreadPool::FunctionAdditor::functions
std::list< boost::function< void()> > functions
Definition: function-additor.hh:19
Scroom::Detail::ThreadPool::FunctionAdditor::operator()
void operator()()
Definition: function-additor.cc:30
Scroom::Detail::ThreadPool::FunctionAdditor::operator+=
FunctionAdditor & operator+=(boost::function< void()> const &fn)
Definition: function-additor.cc:23
Scroom::Detail::ThreadPool::FunctionMultiplier::f
boost::function< void()> f
Definition: function-additor.hh:33
operator+
Scroom::Detail::ThreadPool::FunctionAdditor operator+(boost::function< void()> const &f1, boost::function< void()> const &f2)
Definition: function-additor.cc:62
Scroom::Detail::ThreadPool::FunctionMultiplier
Definition: function-additor.hh:30
Scroom::Detail::ThreadPool::FunctionAdditor::addBefore
void addBefore(boost::function< void()> const &fn)
Definition: function-additor.cc:10
Scroom::Detail::ThreadPool::FunctionMultiplier::operator*
FunctionMultiplier & operator*(unsigned int i)
Definition: function-additor.cc:46
operator*
Scroom::Detail::ThreadPool::FunctionMultiplier & operator*(unsigned int i, Scroom::Detail::ThreadPool::FunctionMultiplier &m)
Definition: function-additor.cc:75