52#ifndef LASS_GUARDIAN_OF_INCLUSION_UTIL_MULTI_CALLBACK_12_H
53#define LASS_GUARDIAN_OF_INCLUSION_UTIL_MULTI_CALLBACK_12_H
72 typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12
76 typedef MultiCallback12 TSelf;
77 typedef Callback12<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> TCallback;
87 MultiCallback12(
const TCallback& iCallback)
89 callbacks_.push_back(iCallback);
94 MultiCallback12(
const TCallback& iCallback1,
const TCallback& iCallback2)
96 callbacks_.push_back(iCallback1);
97 callbacks_.push_back(iCallback2);
102 MultiCallback12(
const TSelf& iOther):
103 callbacks_(iOther.callbacks_)
109 MultiCallback12(TSelf&& iOther)
noexcept:
110 callbacks_(std::move(iOther.callbacks_))
116 TSelf& operator=(
const TSelf& iOther)
118 callbacks_ = std::move(iOther.callbacks_);
124 TSelf& operator=(TSelf&& iOther)
noexcept
133 void add(
const TCallback& iCallback )
135 callbacks_.push_back(iCallback);
141 void remove(
const TCallback& iCallback )
143 std::remove( callbacks_.begin(), callbacks_.end(), iCallback );
148 void pop( TCallback& iCallback )
150 iCallback = callbacks_.back();
151 callbacks_.pop_back();
156 TSelf& operator += (
const TCallback& iCallback )
158 callbacks_.push_back(iCallback);
164 TSelf& operator -= (
const TCallback& iCallback )
174 return callbacks_.size();
179 void operator()(
typename util::CallTraits<P1>::TParam iP1,
typename util::CallTraits<P2>::TParam iP2,
typename util::CallTraits<P3>::TParam iP3,
typename util::CallTraits<P4>::TParam iP4,
typename util::CallTraits<P5>::TParam iP5,
typename util::CallTraits<P6>::TParam iP6,
typename util::CallTraits<P7>::TParam iP7,
typename util::CallTraits<P8>::TParam iP8,
typename util::CallTraits<P9>::TParam iP9,
typename util::CallTraits<P10>::TParam iP10,
typename util::CallTraits<P11>::TParam iP11,
typename util::CallTraits<P12>::TParam iP12)
const
181 call(iP1, iP2, iP3, iP4, iP5, iP6, iP7, iP8, iP9, iP10, iP11, iP12);
183 void call(
typename util::CallTraits<P1>::TParam iP1,
typename util::CallTraits<P2>::TParam iP2,
typename util::CallTraits<P3>::TParam iP3,
typename util::CallTraits<P4>::TParam iP4,
typename util::CallTraits<P5>::TParam iP5,
typename util::CallTraits<P6>::TParam iP6,
typename util::CallTraits<P7>::TParam iP7,
typename util::CallTraits<P8>::TParam iP8,
typename util::CallTraits<P9>::TParam iP9,
typename util::CallTraits<P10>::TParam iP10,
typename util::CallTraits<P11>::TParam iP11,
typename util::CallTraits<P12>::TParam iP12)
const
185 size_t nrCallbacks = callbacks_.size();
186 for (
size_t i=0;i<nrCallbacks;++i)
187 callbacks_[i](iP1, iP2, iP3, iP4, iP5, iP6, iP7, iP8, iP9, iP10, iP11, iP12);
190 const TCallback& operator[](
size_t index)
const
192 return callbacks_.at(index);
210 return callbacks_.size()==0;
215 bool operator!()
const
222 explicit operator bool()
const
229 void swap(TSelf& iOther)
231 callbacks_.swap(iOther.callbacks_);
237 bool operator==(
const TSelf& iOther)
const
239 size_t nrCallbacks = callbacks_.size();
240 if (nrCallbacks != iOther.callbacks_.size())
242 for (
size_t i=0;i<nrCallbacks;++i)
243 if (callbacks_[i]!=iOther.callbacks_[i])
248 std::vector<TCallback> callbacks_;
general utility, debug facilities, ...
Library for Assembled Shared Sources.