52#ifndef LASS_GUARDIAN_OF_INCLUSION_UTIL_MULTI_CALLBACK_1_H
53#define LASS_GUARDIAN_OF_INCLUSION_UTIL_MULTI_CALLBACK_1_H
76 typedef MultiCallback1 TSelf;
77 typedef Callback1<P1> TCallback;
87 MultiCallback1(
const TCallback& iCallback)
89 callbacks_.push_back(iCallback);
94 MultiCallback1(
const TCallback& iCallback1,
const TCallback& iCallback2)
96 callbacks_.push_back(iCallback1);
97 callbacks_.push_back(iCallback2);
102 MultiCallback1(
const TSelf& iOther):
103 callbacks_(iOther.callbacks_)
109 MultiCallback1(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)
const
184 void call(
typename util::CallTraits<P1>::TParam iP1)
const
186 size_t nrCallbacks = callbacks_.size();
187 for (
size_t i=0;i<nrCallbacks;++i)
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.