66#ifndef LASS_GUARDIAN_OF_INCLUSION_UTIL_CALLBACK_11_H
67#define LASS_GUARDIAN_OF_INCLUSION_UTIL_CALLBACK_11_H
94 typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11
100 typedef Callback11<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> TSelf;
101 typedef SharedPtr< impl::Dispatcher11<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> > TDispatcherPtr;
113 template <
typename FunctionType>
115 dispatcher_(new impl::Dispatcher11Function<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, FunctionType>(iFunction))
121 template <
typename ObjectPtr,
typename Method>
123 dispatcher_(new impl::Dispatcher11Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, ObjectPtr, Method>(iObject, iMethod))
130 dispatcher_(iOther.dispatcher_)
137 dispatcher_(std::move(iOther.dispatcher_))
157 dispatcher_ = std::move(iOther.dispatcher_);
163 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)
const
167 dispatcher_->call(iP1, iP2, iP3, iP4, iP5, iP6, iP7, iP8, iP9, iP10, iP11);
185 return dispatcher_.isEmpty();
192 return dispatcher_.isEmpty();
197 explicit operator bool()
const
199 return !dispatcher_.isEmpty() ;
206 dispatcher_.swap(iOther.dispatcher_);
214 if (dispatcher_ == iOther.dispatcher_)
218 return dispatcher_ && dispatcher_->isEquivalent(iOther.dispatcher_.get());
221 const TDispatcherPtr& dispatcher()
const
228 TDispatcherPtr dispatcher_;
236template<
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11>
237inline bool operator!=(
const Callback11<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>& iA,
const Callback11<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>& iB)
247template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11>
inline
248Callback11<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> makeCallback(
void (*iFunction)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11))
250 return Callback11<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(iFunction);
258template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11>
inline
259const Callback11<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>&
makeCallback(
const Callback11<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>& iCallback)
269template <
typename ObjectPtr,
typename Object,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11>
inline
270Callback11<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> makeCallback(ObjectPtr iObject,
void (Object::*iMethod)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11))
272 return Callback11<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(iObject, iMethod);
280template <
typename ObjectPtr,
typename Object,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11>
inline
281Callback11<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> makeCallback(ObjectPtr iObject,
void (Object::*iMethod)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11)
const)
283 return Callback11<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(iObject, iMethod);
292#define LASS_PRIM_HAVE_PY_EXPORT_TRAITS_CALLBACK_11
293#ifdef LASS_GUARDIAN_OF_INCLUSION_UTIL_CALLBACK_PYTHON_H
bool operator!=(const Callback11< P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 > &iA, const Callback11< P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 > &iB)
return true if two callbacks are different
const Callback11< P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 > & makeCallback(const Callback11< P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 > &iCallback)
make a Callback11 from a callback
void swap(TSelf &iOther)
Swaps the dispatcher of this callback with the dispatcher of another.
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) const
THE operator.
Callback11()
Default constructor, construct empty callback.
TSelf & operator=(TSelf &&iOther) noexcept
move assignment operator
Callback11(ObjectPtr iObject, Method iMethod)
Construct object/method callback.
Callback11< P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 > makeCallback(void(*iFunction)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11))
make a Callback11 from a function
Callback11(const TSelf &iOther)
copy constructor
void reset()
Reset to empty callback.
bool isEmpty() const
Returns true if no callback dispatcher is assigned to this object.
TSelf & operator=(const TSelf &iOther)
assignment operator
bool operator!() const
return this->isEmpty()
Callback11< P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 > makeCallback(ObjectPtr iObject, void(Object::*iMethod)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11) const)
make a Callback11 from a object and const method
Callback11< P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 > makeCallback(ObjectPtr iObject, void(Object::*iMethod)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11))
make a Callback11 from a object and method
Callback11(TSelf &&iOther) noexcept
move constructor
bool operator==(const TSelf &iOther) const
return true if two callbacks call the same function/method, NEEDS RTTI!
Callback11(FunctionType iFunction)
Construct function callback.
general utility, debug facilities, ...
Library for Assembled Shared Sources.