52#ifndef LASS_GUARDIAN_OF_INCLUSION_UTIL_MULTI_CALLBACK_14_H
53#define LASS_GUARDIAN_OF_INCLUSION_UTIL_MULTI_CALLBACK_14_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,
typename P13,
typename P14
76 typedef MultiCallback14 TSelf;
77 typedef Callback14<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> TCallback;
87 MultiCallback14(
const TCallback& iCallback)
89 callbacks_.push_back(iCallback);
94 MultiCallback14(
const TCallback& iCallback1,
const TCallback& iCallback2)
96 callbacks_.push_back(iCallback1);
97 callbacks_.push_back(iCallback2);
102 MultiCallback14(
const TSelf& iOther):
103 callbacks_(iOther.callbacks_)
109 MultiCallback14(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,
typename util::CallTraits<P13>::TParam iP13,
typename util::CallTraits<P14>::TParam iP14)
const
181 call(iP1, iP2, iP3, iP4, iP5, iP6, iP7, iP8, iP9, iP10, iP11, iP12, iP13, iP14);
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,
typename util::CallTraits<P13>::TParam iP13,
typename util::CallTraits<P14>::TParam iP14)
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, iP13, iP14);
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.