diff -r ae406f4957d5 -r f860e6f94787 src/core/callback.h --- a/src/core/callback.h Tue Sep 05 13:13:39 2006 +0200 +++ b/src/core/callback.h Tue Sep 05 13:18:11 2006 +0200 @@ -1,4 +1,4 @@ -/* -*- Mode:C++; c-basic-offset:8; tab-width:8; indent-tabs-mode:t -*- */ +/* -*- Mode:C++; c-basic-offset:4; tab-width:4; indent-tabs-mode:f -*- */ /* * Copyright (c) 2005,2006 INRIA * All rights reserved. @@ -64,43 +64,43 @@ template class CallbackImpl { public: - virtual ~CallbackImpl () {} - virtual R operator() (void) = 0; + virtual ~CallbackImpl () {} + virtual R operator() (void) = 0; }; // define CallbackImpl for 1 params template class CallbackImpl { public: - virtual ~CallbackImpl () {} - virtual R operator() (T1) = 0; + virtual ~CallbackImpl () {} + virtual R operator() (T1) = 0; }; // define CallbackImpl for 2 params template class CallbackImpl { public: - virtual ~CallbackImpl () {} - virtual R operator() (T1, T2) = 0; + virtual ~CallbackImpl () {} + virtual R operator() (T1, T2) = 0; }; // define CallbackImpl for 3 params template class CallbackImpl { public: - virtual ~CallbackImpl () {} - virtual R operator() (T1, T2, T3) = 0; + virtual ~CallbackImpl () {} + virtual R operator() (T1, T2, T3) = 0; }; // define CallbackImpl for 4 params template class CallbackImpl { public: - virtual ~CallbackImpl () {} - virtual R operator() (T1, T2, T3, T4) = 0; + virtual ~CallbackImpl () {} + virtual R operator() (T1, T2, T3, T4) = 0; }; // define CallbackImpl for 5 params template class CallbackImpl { public: - virtual ~CallbackImpl () {} - virtual R operator() (T1, T2, T3, T4, T5) = 0; + virtual ~CallbackImpl () {} + virtual R operator() (T1, T2, T3, T4, T5) = 0; }; @@ -108,59 +108,59 @@ template class FunctorCallbackImpl : public CallbackImpl { public: - FunctorCallbackImpl (T const &functor) - : m_functor (functor) {} - virtual ~FunctorCallbackImpl () {} - R operator() (void) { - return m_functor (); - } - R operator() (T1 a1) { - return m_functor (a1); - } - R operator() (T1 a1,T2 a2) { - return m_functor (a1,a2); - } - R operator() (T1 a1,T2 a2,T3 a3) { - return m_functor (a1,a2,a3); - } - R operator() (T1 a1,T2 a2,T3 a3,T4 a4) { - return m_functor (a1,a2,a3,a4); - } - R operator() (T1 a1,T2 a2,T3 a3,T4 a4,T5 a5) { - return m_functor (a1,a2,a3,a4,a5); - } + FunctorCallbackImpl (T const &functor) + : m_functor (functor) {} + virtual ~FunctorCallbackImpl () {} + R operator() (void) { + return m_functor (); + } + R operator() (T1 a1) { + return m_functor (a1); + } + R operator() (T1 a1,T2 a2) { + return m_functor (a1,a2); + } + R operator() (T1 a1,T2 a2,T3 a3) { + return m_functor (a1,a2,a3); + } + R operator() (T1 a1,T2 a2,T3 a3,T4 a4) { + return m_functor (a1,a2,a3,a4); + } + R operator() (T1 a1,T2 a2,T3 a3,T4 a4,T5 a5) { + return m_functor (a1,a2,a3,a4,a5); + } private: - T m_functor; + T m_functor; }; // an impl for Bound Functors: template class BoundFunctorCallbackImpl : public CallbackImpl { public: - BoundFunctorCallbackImpl (T const &functor, TX a) - : m_functor (functor), m_a (a) {} - virtual ~BoundFunctorCallbackImpl () {} - R operator() (void) { - return m_functor (m_a); - } - R operator() (T1 a1) { - return m_functor (m_a,a1); - } - R operator() (T1 a1,T2 a2) { - return m_functor (m_a,a1,a2); - } - R operator() (T1 a1,T2 a2,T3 a3) { - return m_functor (m_a,a1,a2,a3); - } - R operator() (T1 a1,T2 a2,T3 a3,T4 a4) { - return m_functor (m_a,a1,a2,a3,a4); - } - R operator() (T1 a1,T2 a2,T3 a3,T4 a4,T5 a5) { - return m_functor (m_a,a1,a2,a3,a4,a5); - } + BoundFunctorCallbackImpl (T const &functor, TX a) + : m_functor (functor), m_a (a) {} + virtual ~BoundFunctorCallbackImpl () {} + R operator() (void) { + return m_functor (m_a); + } + R operator() (T1 a1) { + return m_functor (m_a,a1); + } + R operator() (T1 a1,T2 a2) { + return m_functor (m_a,a1,a2); + } + R operator() (T1 a1,T2 a2,T3 a3) { + return m_functor (m_a,a1,a2,a3); + } + R operator() (T1 a1,T2 a2,T3 a3,T4 a4) { + return m_functor (m_a,a1,a2,a3,a4); + } + R operator() (T1 a1,T2 a2,T3 a3,T4 a4,T5 a5) { + return m_functor (m_a,a1,a2,a3,a4,a5); + } private: - T m_functor; - TX m_a; + T m_functor; + TX m_a; }; @@ -168,30 +168,30 @@ template class MemPtrCallbackImpl : public CallbackImpl { public: - MemPtrCallbackImpl (OBJ_PTR const&objPtr, MEM_PTR mem_ptr) - : m_objPtr (objPtr), m_memPtr (mem_ptr) {} - virtual ~MemPtrCallbackImpl () {} - R operator() (void) { - return ((*m_objPtr).*m_memPtr) (); - } - R operator() (T1 a1) { - return ((*m_objPtr).*m_memPtr) (a1); - } - R operator() (T1 a1,T2 a2) { - return ((*m_objPtr).*m_memPtr) (a1,a2); - } - R operator() (T1 a1,T2 a2,T3 a3) { - return ((*m_objPtr).*m_memPtr) (a1,a2,a3); - } - R operator() (T1 a1,T2 a2,T3 a3,T4 a4) { - return ((*m_objPtr).*m_memPtr) (a1,a2,a3,a4); - } - R operator() (T1 a1,T2 a2,T3 a3,T4 a4,T5 a5) { - return ((*m_objPtr).*m_memPtr) (a1,a2,a3,a4,a5); - } + MemPtrCallbackImpl (OBJ_PTR const&objPtr, MEM_PTR mem_ptr) + : m_objPtr (objPtr), m_memPtr (mem_ptr) {} + virtual ~MemPtrCallbackImpl () {} + R operator() (void) { + return ((*m_objPtr).*m_memPtr) (); + } + R operator() (T1 a1) { + return ((*m_objPtr).*m_memPtr) (a1); + } + R operator() (T1 a1,T2 a2) { + return ((*m_objPtr).*m_memPtr) (a1,a2); + } + R operator() (T1 a1,T2 a2,T3 a3) { + return ((*m_objPtr).*m_memPtr) (a1,a2,a3); + } + R operator() (T1 a1,T2 a2,T3 a3,T4 a4) { + return ((*m_objPtr).*m_memPtr) (a1,a2,a3,a4); + } + R operator() (T1 a1,T2 a2,T3 a3,T4 a4,T5 a5) { + return ((*m_objPtr).*m_memPtr) (a1,a2,a3,a4,a5); + } private: - OBJ_PTR const m_objPtr; - MEM_PTR m_memPtr; + OBJ_PTR const m_objPtr; + MEM_PTR m_memPtr; }; /** @@ -223,50 +223,50 @@ * \include samples/main-callback.cc */ template + typename T1 = empty, typename T2 = empty, + typename T3 = empty, typename T4 = empty, + typename T5 = empty> class Callback { public: - template - Callback (FUNCTOR const &functor) - : m_impl (new FunctorCallbackImpl (functor)) - {} + template + Callback (FUNCTOR const &functor) + : m_impl (new FunctorCallbackImpl (functor)) + {} - template - Callback (OBJ_PTR const &objPtr, MEM_PTR mem_ptr) - : m_impl (new MemPtrCallbackImpl (objPtr, mem_ptr)) - {} + template + Callback (OBJ_PTR const &objPtr, MEM_PTR mem_ptr) + : m_impl (new MemPtrCallbackImpl (objPtr, mem_ptr)) + {} - Callback (ReferenceList *> const &impl) - : m_impl (impl) - {} + Callback (ReferenceList *> const &impl) + : m_impl (impl) + {} - bool isNull (void) { - return (m_impl.get () == 0)?true:false; - } + bool isNull (void) { + return (m_impl.get () == 0)?true:false; + } - Callback () : m_impl () {} - R operator() (void) { - return (*(m_impl.get ())) (); - } - R operator() (T1 a1) { - return (*(m_impl.get ())) (a1); - } - R operator() (T1 a1, T2 a2) { - return (*(m_impl).get ()) (a1,a2); - } - R operator() (T1 a1, T2 a2, T3 a3) { - return (*(m_impl).get ()) (a1,a2,a3); - } - R operator() (T1 a1, T2 a2, T3 a3, T4 a4) { - return (*(m_impl).get ()) (a1,a2,a3,a4); - } - R operator() (T1 a1, T2 a2, T3 a3, T4 a4,T5 a5) { - return (*(m_impl).get ()) (a1,a2,a3,a4,a5); - } + Callback () : m_impl () {} + R operator() (void) { + return (*(m_impl.get ())) (); + } + R operator() (T1 a1) { + return (*(m_impl.get ())) (a1); + } + R operator() (T1 a1, T2 a2) { + return (*(m_impl).get ()) (a1,a2); + } + R operator() (T1 a1, T2 a2, T3 a3) { + return (*(m_impl).get ()) (a1,a2,a3); + } + R operator() (T1 a1, T2 a2, T3 a3, T4 a4) { + return (*(m_impl).get ()) (a1,a2,a3,a4); + } + R operator() (T1 a1, T2 a2, T3 a3, T4 a4,T5 a5) { + return (*(m_impl).get ()) (a1,a2,a3,a4,a5); + } private: - ReferenceList*> m_impl; + ReferenceList*> m_impl; }; /** @@ -284,7 +284,7 @@ */ template Callback makeCallback (R (OBJ::*mem_ptr) (), OBJ *const objPtr) { - return Callback (objPtr, mem_ptr); + return Callback (objPtr, mem_ptr); } /** * \ingroup makeCallback @@ -296,7 +296,7 @@ */ template Callback makeCallback (R (OBJ::*mem_ptr) (T1), OBJ *const objPtr) { - return Callback (objPtr, mem_ptr); + return Callback (objPtr, mem_ptr); } /** * \ingroup makeCallback @@ -308,7 +308,7 @@ */ template Callback makeCallback (R (OBJ::*mem_ptr) (T1,T2), OBJ *const objPtr) { - return Callback (objPtr, mem_ptr); + return Callback (objPtr, mem_ptr); } /** * \ingroup makeCallback @@ -320,7 +320,7 @@ */ template Callback makeCallback (R (OBJ::*mem_ptr) (T1,T2,T3), OBJ *const objPtr) { - return Callback (objPtr, mem_ptr); + return Callback (objPtr, mem_ptr); } /** * \ingroup makeCallback @@ -332,7 +332,7 @@ */ template Callback makeCallback (R (OBJ::*mem_ptr) (T1,T2,T3,T4), OBJ *const objPtr) { - return Callback (objPtr, mem_ptr); + return Callback (objPtr, mem_ptr); } /** * \ingroup makeCallback @@ -344,7 +344,7 @@ */ template Callback makeCallback (R (OBJ::*mem_ptr) (T1,T2,T3,T4,T5), OBJ *const objPtr) { - return Callback (objPtr, mem_ptr); + return Callback (objPtr, mem_ptr); } /** @@ -356,7 +356,7 @@ */ template Callback makeCallback (R (*fnPtr) ()) { - return Callback (fnPtr); + return Callback (fnPtr); } /** * \ingroup makeCallback @@ -367,7 +367,7 @@ */ template Callback makeCallback (R (*fnPtr) (T1)) { - return Callback (fnPtr); + return Callback (fnPtr); } /** * \ingroup makeCallback @@ -378,7 +378,7 @@ */ template Callback makeCallback (R (*fnPtr) (T1,T2)) { - return Callback (fnPtr); + return Callback (fnPtr); } /** * \ingroup makeCallback @@ -389,7 +389,7 @@ */ template Callback makeCallback (R (*fnPtr) (T1,T2,T3)) { - return Callback (fnPtr); + return Callback (fnPtr); } /** * \ingroup makeCallback @@ -400,7 +400,7 @@ */ template Callback makeCallback (R (*fnPtr) (T1,T2,T3,T4)) { - return Callback (fnPtr); + return Callback (fnPtr); } /** * \ingroup makeCallback @@ -411,7 +411,7 @@ */ template Callback makeCallback (R (*fnPtr) (T1,T2,T3,T4,T5)) { - return Callback (fnPtr); + return Callback (fnPtr); } @@ -424,7 +424,7 @@ */ template Callback makeNullCallback (void) { - return Callback (); + return Callback (); } /** * \ingroup makeCallback @@ -434,7 +434,7 @@ */ template Callback makeNullCallback (void) { - return Callback (); + return Callback (); } /** * \ingroup makeCallback @@ -444,7 +444,7 @@ */ template Callback makeNullCallback (void) { - return Callback (); + return Callback (); } /** * \ingroup makeCallback @@ -454,7 +454,7 @@ */ template Callback makeNullCallback (void) { - return Callback (); + return Callback (); } /** * \ingroup makeCallback @@ -464,7 +464,7 @@ */ template Callback makeNullCallback (void) { - return Callback (); + return Callback (); } /** * \ingroup makeCallback @@ -474,41 +474,41 @@ */ template Callback makeNullCallback (void) { - return Callback (); + return Callback (); } template Callback makeBoundCallback (R (*fnPtr) (TX,T1), TX a) { - ReferenceList*> impl = - ReferenceList*> ( - new BoundFunctorCallbackImpl (fnPtr, a) - ); - return Callback (impl); + ReferenceList*> impl = + ReferenceList*> ( + new BoundFunctorCallbackImpl (fnPtr, a) + ); + return Callback (impl); } template Callback makeBoundCallback (R (*fnPtr) (TX,T1,T2), TX a) { - ReferenceList*> impl = - ReferenceList*> ( - new BoundFunctorCallbackImpl (fnPtr, a) - ); - return Callback (impl); + ReferenceList*> impl = + ReferenceList*> ( + new BoundFunctorCallbackImpl (fnPtr, a) + ); + return Callback (impl); } template Callback makeBoundCallback (R (*fnPtr) (TX,T1,T2,T3,T4), TX a) { - ReferenceList*> impl = - ReferenceList*> ( - new BoundFunctorCallbackImpl (fnPtr, a) - ); - return Callback (impl); + ReferenceList*> impl = + ReferenceList*> ( + new BoundFunctorCallbackImpl (fnPtr, a) + ); + return Callback (impl); } template Callback makeBoundCallback (R (*fnPtr) (TX,T1,T2,T3,T4,T5), TX a) { - ReferenceList*> impl = - ReferenceList*> ( - new BoundFunctorCallbackImpl (fnPtr, a) - ); - return Callback (impl); + ReferenceList*> impl = + ReferenceList*> ( + new BoundFunctorCallbackImpl (fnPtr, a) + ); + return Callback (impl); }