52#ifndef LASS_GUARDIAN_OF_INCLUSION_UTIL_MULTI_CALLBACK_7_H
53#define LASS_GUARDIAN_OF_INCLUSION_UTIL_MULTI_CALLBACK_7_H
72 typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7
76 typedef MultiCallback7 TSelf;
77 typedef Callback7<P1, P2, P3, P4, P5, P6, P7> TCallback;
87 MultiCallback7(
const TCallback& iCallback)
89 callbacks_.push_back(iCallback);
94 MultiCallback7(
const TCallback& iCallback1,
const TCallback& iCallback2)
96 callbacks_.push_back(iCallback1);
97 callbacks_.push_back(iCallback2);
102 MultiCallback7(
const TSelf& iOther):
103 callbacks_(iOther.callbacks_)
109 MultiCallback7(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)
const
181 call(iP1, iP2, iP3, iP4, iP5, iP6, iP7);
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)
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);
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.