20 #include <boost/noncopyable.hpp>
21 #include <boost/unordered/unordered_map.hpp>
23 #include <tbb/mutex.h>
24 #include <tbb/tbb_thread.h>
25 #include <tbb/compat/condition_variable>
26 #include <tbb/enumerable_thread_specific.h>
83 virtual void runCallback() = 0;
86 typedef boost::unordered_map<std::string, bool>
EnabledMap;
117 virtual bool active()
const;
129 virtual bool enabled(
const std::string&,
bool def)
const;
135 virtual void printInfo(std::ostream&)
const;
154 template <
typename Container>
157 typedef typename Container::iterator iterator;
158 for (iterator i=cont.begin(), end=cont.end(); i != end; ++i)
162 template <
typename Container>
163 void addCallbacks(Container& cont,
const std::string& tag,
bool def=
true)
165 bool runNow = !
enabled(tag, def);
166 typedef typename Container::iterator iterator;
167 for (iterator i=cont.begin(), end=cont.end(); i != end; ++i)
171 template <
typename Container>
190 class ThreadLocalInfo;
192 virtual ThreadLocalInfo& threadLocalInfo();
196 virtual void createCallbackQueue(
bool force=
false);
213 typedef tbb::enumerable_thread_specific<
302 typedef std::vector<DtCriticalSection*>
Stack;