52#ifndef LASS_GUARDIAN_OF_INCLUSION_UTIL_MULTI_CALLBACK_15_H
53#define LASS_GUARDIAN_OF_INCLUSION_UTIL_MULTI_CALLBACK_15_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,
typename P15
76 typedef MultiCallback15 TSelf;
77 typedef Callback15<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> TCallback;
87 MultiCallback15(
const TCallback& iCallback)
89 callbacks_.push_back(iCallback);
94 MultiCallback15(
const TCallback& iCallback1,
const TCallback& iCallback2)
96 callbacks_.push_back(iCallback1);
97 callbacks_.push_back(iCallback2);
102 MultiCallback15(
const TSelf& iOther):
103 callbacks_(iOther.callbacks_)
109 MultiCallback15(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 auto end = std::remove( callbacks_.begin(), callbacks_.end(), iCallback );
144 callbacks_.erase( end, callbacks_.end() );
149 void pop( TCallback& iCallback )
151 iCallback = callbacks_.back();
152 callbacks_.pop_back();
157 TSelf& operator += (
const TCallback& iCallback )
159 callbacks_.push_back(iCallback);
165 TSelf& operator -= (
const TCallback& iCallback )
175 return callbacks_.size();
180 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,
typename util::CallTraits<P15>::TParam iP15)
const
182 call(iP1, iP2, iP3, iP4, iP5, iP6, iP7, iP8, iP9, iP10, iP11, iP12, iP13, iP14, iP15);
184 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,
typename util::CallTraits<P15>::TParam iP15)
const
186 size_t nrCallbacks = callbacks_.size();
187 for (
size_t i=0;i<nrCallbacks;++i)
188 callbacks_[i](iP1, iP2, iP3, iP4, iP5, iP6, iP7, iP8, iP9, iP10, iP11, iP12, iP13, iP14, iP15);
191 const TCallback& operator[](
size_t index)
const
193 return callbacks_.at(index);
211 return callbacks_.size()==0;
216 bool operator!()
const
223 explicit operator bool()
const
230 void swap(TSelf& iOther)
232 callbacks_.swap(iOther.callbacks_);
238 bool operator==(
const TSelf& iOther)
const
240 size_t nrCallbacks = callbacks_.size();
241 if (nrCallbacks != iOther.callbacks_.size())
243 for (
size_t i=0;i<nrCallbacks;++i)
244 if (callbacks_[i]!=iOther.callbacks_[i])
249 std::vector<TCallback> callbacks_;
general utility, debug facilities, ...
Library for Assembled Shared Sources.