1 #ifndef WIRECELL_FANINOUT 2 #define WIRECELL_FANINOUT 4 #include <boost/signals2.hpp> 13 template<
typename Data,
typename Address =
int>
23 typedef boost::signals2::signal<result_type ()>
signal;
25 typedef typename signal::slot_type
slot;
42 for (
auto it =
m_fan.begin(); it !=
m_fan.end(); ++it) {
43 it->second.push_back(dat);
46 result_type
dat = dq.front();
60 template<
typename Data,
typename Address =
int>
67 typedef boost::signals2::signal<value_type (const address_type& addr)>
signal;
69 typedef typename signal::slot_type
slot;
104 template<
typename Collection>
110 template<
typename InputIterator>
111 result_type
operator()(InputIterator first, InputIterator last)
const {
113 while (first != last) {
114 ret.push_back(*first);
result_type operator()(InputIterator first, InputIterator last) const
Addresser(const address_type &addr)
std::deque< result_type > data_queue
boost::signals2::signal< result_type()> signal
void address(const address_type &addr)
Register an address.
void connect(const slot &s)
result_type operator()(const address_type &addr)
boost::signals2::signal< value_type(const address_type &addr)> signal
std::map< int, data_queue > queue_map
constexpr std::enable_if_t< are_cv_compatible< TO, FROM >::value, std::add_pointer_t< std::remove_pointer_t< TO > > > addr(FROM &from)
void connect(const slot &s)