From 1c290f078a29f8892d6ac5278cf464fa80fe7851 Mon Sep 17 00:00:00 2001 From: Laurent Perron Date: Sat, 5 Jan 2019 08:52:41 +0100 Subject: [PATCH] remove traces of callback.h --- examples/cpp/parse_dimacs_assignment.h | 1 - examples/cpp/pdptw.cc | 1 - examples/cpp/random_tsp.cc | 1 - makefiles/Makefile.gen.mk | 7 - ortools/base/BUILD | 10 - ortools/base/callback.cc | 23 - ortools/base/callback.h | 14572 ----------------------- 7 files changed, 14615 deletions(-) delete mode 100644 ortools/base/callback.cc delete mode 100644 ortools/base/callback.h diff --git a/examples/cpp/parse_dimacs_assignment.h b/examples/cpp/parse_dimacs_assignment.h index 03c659cf4f..06b97d74b2 100644 --- a/examples/cpp/parse_dimacs_assignment.h +++ b/examples/cpp/parse_dimacs_assignment.h @@ -25,7 +25,6 @@ #include #include -#include "ortools/base/callback.h" #include "ortools/base/commandlineflags.h" #include "ortools/base/filelineiter.h" #include "ortools/base/logging.h" diff --git a/examples/cpp/pdptw.cc b/examples/cpp/pdptw.cc index 3ecc463ccd..6882fd60fb 100644 --- a/examples/cpp/pdptw.cc +++ b/examples/cpp/pdptw.cc @@ -42,7 +42,6 @@ #include "absl/strings/str_format.h" #include "absl/strings/str_split.h" #include "google/protobuf/text_format.h" -#include "ortools/base/callback.h" #include "ortools/base/commandlineflags.h" #include "ortools/base/file.h" #include "ortools/base/mathutil.h" diff --git a/examples/cpp/random_tsp.cc b/examples/cpp/random_tsp.cc index 8fcab4ce97..426c93dac4 100644 --- a/examples/cpp/random_tsp.cc +++ b/examples/cpp/random_tsp.cc @@ -30,7 +30,6 @@ #include "absl/memory/memory.h" #include "absl/strings/str_cat.h" #include "google/protobuf/text_format.h" -#include "ortools/base/callback.h" #include "ortools/base/commandlineflags.h" #include "ortools/base/integral_types.h" #include "ortools/base/random.h" diff --git a/makefiles/Makefile.gen.mk b/makefiles/Makefile.gen.mk index 32bc69498a..da51ca0f67 100644 --- a/makefiles/Makefile.gen.mk +++ b/makefiles/Makefile.gen.mk @@ -5,7 +5,6 @@ BASE_DEPS = \ $(SRC_DIR)/ortools/base/base_export.h \ $(SRC_DIR)/ortools/base/basictypes.h \ $(SRC_DIR)/ortools/base/bitmap.h \ - $(SRC_DIR)/ortools/base/callback.h \ $(SRC_DIR)/ortools/base/canonical_errors.h \ $(SRC_DIR)/ortools/base/cleanup.h \ $(SRC_DIR)/ortools/base/commandlineflags.h \ @@ -43,7 +42,6 @@ BASE_DEPS = \ BASE_LIB_OBJS = \ $(OBJ_DIR)/base/bitmap.$O \ - $(OBJ_DIR)/base/callback.$O \ $(OBJ_DIR)/base/file.$O \ $(OBJ_DIR)/base/random.$O \ $(OBJ_DIR)/base/recordio.$O \ @@ -56,11 +54,6 @@ objs/base/bitmap.$O: ortools/base/bitmap.cc ortools/base/bitmap.h \ ortools/base/logging.h ortools/base/macros.h | $(OBJ_DIR)/base $(CCC) $(CFLAGS) -c $(SRC_DIR)$Sortools$Sbase$Sbitmap.cc $(OBJ_OUT)$(OBJ_DIR)$Sbase$Sbitmap.$O -objs/base/callback.$O: ortools/base/callback.cc ortools/base/callback.h \ - ortools/base/logging.h ortools/base/integral_types.h \ - ortools/base/macros.h | $(OBJ_DIR)/base - $(CCC) $(CFLAGS) -c $(SRC_DIR)$Sortools$Sbase$Scallback.cc $(OBJ_OUT)$(OBJ_DIR)$Sbase$Scallback.$O - objs/base/file.$O: ortools/base/file.cc ortools/base/file.h \ ortools/base/integral_types.h ortools/base/logging.h \ ortools/base/macros.h ortools/base/status.h | $(OBJ_DIR)/base diff --git a/ortools/base/BUILD b/ortools/base/BUILD index 2d744faf2e..9d26eb6ece 100644 --- a/ortools/base/BUILD +++ b/ortools/base/BUILD @@ -131,16 +131,6 @@ cc_library( ], ) -cc_library( - name = "callback", - hdrs = [ - "callback.h", - ], - deps = [ - ":base", - ], -) - cc_library( name = "filelinereader", srcs = [ diff --git a/ortools/base/callback.cc b/ortools/base/callback.cc deleted file mode 100644 index 6b51f3ecbe..0000000000 --- a/ortools/base/callback.cc +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2010-2018 Google LLC -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "ortools/base/callback.h" - -namespace operations_research { - -void CallbackUtils_::FailIsRepeatable(const char* name) { - LOG(FATAL) << "A " << name - << " made with NewCallback() " - "is not a repeatable callback!"; -} -} // namespace operations_research diff --git a/ortools/base/callback.h b/ortools/base/callback.h deleted file mode 100644 index acf5a95370..0000000000 --- a/ortools/base/callback.h +++ /dev/null @@ -1,14572 +0,0 @@ -// Copyright 2010-2018 Google LLC -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#ifndef OR_TOOLS_BASE_CALLBACK_H_ -#define OR_TOOLS_BASE_CALLBACK_H_ - -#include "ortools/base/logging.h" - -namespace operations_research { - -struct CallbackUtils_ { - static void FailIsRepeatable(const char* name); -}; - -} // namespace operations_research - -using operations_research::CallbackUtils_; - -// ----- base types ----- - -class Closure { - public: - virtual ~Closure() {} - virtual bool IsRepeatable() const { return false; } - virtual void CheckIsRepeatable() const {} - virtual void Run() = 0; -}; - -template -class ResultCallback { - public: - virtual ~ResultCallback() {} - virtual bool IsRepeatable() const { return false; } - virtual void CheckIsRepeatable() const {} - virtual R Run() = 0; -}; - -template -class Callback1 { - public: - virtual ~Callback1() {} - virtual bool IsRepeatable() const { return false; } - virtual void CheckIsRepeatable() const {} - virtual void Run(A1) = 0; -}; - -template -class ResultCallback1 { - public: - virtual ~ResultCallback1() {} - virtual bool IsRepeatable() const { return false; } - virtual void CheckIsRepeatable() const {} - virtual R Run(A1) = 0; -}; - -template -class Callback2 { - public: - virtual ~Callback2() {} - virtual bool IsRepeatable() const { return false; } - virtual void CheckIsRepeatable() const {} - virtual void Run(A1, A2) = 0; -}; - -template -class ResultCallback2 { - public: - virtual ~ResultCallback2() {} - virtual bool IsRepeatable() const { return false; } - virtual void CheckIsRepeatable() const {} - virtual R Run(A1, A2) = 0; -}; - -template -class Callback3 { - public: - virtual ~Callback3() {} - virtual bool IsRepeatable() const { return false; } - virtual void CheckIsRepeatable() const {} - virtual void Run(A1, A2, A3) = 0; -}; - -template -class ResultCallback3 { - public: - virtual ~ResultCallback3() {} - virtual bool IsRepeatable() const { return false; } - virtual void CheckIsRepeatable() const {} - virtual R Run(A1, A2, A3) = 0; -}; - -template -class Callback4 { - public: - virtual ~Callback4() {} - virtual bool IsRepeatable() const { return false; } - virtual void CheckIsRepeatable() const {} - virtual void Run(A1, A2, A3, A4) = 0; -}; - -template -class ResultCallback4 { - public: - virtual ~ResultCallback4() {} - virtual bool IsRepeatable() const { return false; } - virtual void CheckIsRepeatable() const {} - virtual R Run(A1, A2, A3, A4) = 0; -}; - -template -class Callback5 { - public: - virtual ~Callback5() {} - virtual bool IsRepeatable() const { return false; } - virtual void CheckIsRepeatable() const {} - virtual void Run(A1, A2, A3, A4, A5) = 0; -}; - -template -class ResultCallback5 { - public: - virtual ~ResultCallback5() {} - virtual bool IsRepeatable() const { return false; } - virtual void CheckIsRepeatable() const {} - virtual R Run(A1, A2, A3, A4, A5) = 0; -}; - -// ----- Utility template code used by the callback specializations ----- - -// c_enable_if, equivalent semantics to c++11 std::enable_if, specifically: -// "If B is true, the member typedef type shall equal T; otherwise, there -// shall be no member typedef type." -// Specified by 20.9.7.6 [Other transformations] -template -struct c_enable_if { - typedef T type; -}; -template -struct c_enable_if {}; - -typedef char small_; - -struct big_ { - char dummy[2]; -}; - -template -struct is_class_or_union { - template - static small_ tester(void (U::*)()); - template - static big_ tester(...); -#ifndef SWIG - static const bool value = sizeof(tester(0)) == sizeof(small_); -#endif // SWIG -}; - -template -struct c_remove_reference { - typedef T type; -}; -template -struct c_remove_reference { - typedef T type; -}; - -template -struct ConstRef { - typedef typename c_remove_reference::type base_type; - typedef const base_type& type; -}; - -// ----- Callback specializations ----- - -template ::value>::type> -class _ConstMemberResultCallback_0_0 : public ResultCallback { - public: - typedef ResultCallback base; - typedef R (T::*MemberSignature)() const; - - private: - const T* object_; - MemberSignature member_; - - public: - inline _ConstMemberResultCallback_0_0(const T* object, MemberSignature member) - : ResultCallback(), object_(object), member_(member) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback"); - } - - virtual R Run() { - if (!del) { - R result = (object_->*member_)(); - return result; - } else { - R result = (object_->*member_)(); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_0_0< - del, void, T, typename c_enable_if::value>::type> - : public Closure { - public: - typedef Closure base; - typedef void (T::*MemberSignature)() const; - - private: - const T* object_; - MemberSignature member_; - - public: - inline _ConstMemberResultCallback_0_0(const T* object, MemberSignature member) - : Closure(), object_(object), member_(member) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Closure"); - } - - virtual void Run() { - if (!del) { - (object_->*member_)(); - } else { - (object_->*member_)(); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_0_0::base* NewCallback( - const T1* obj, R (T2::*member)() const) { - return new _ConstMemberResultCallback_0_0(obj, member); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_0_0::base* -NewPermanentCallback(const T1* obj, R (T2::*member)() const) { - return new _ConstMemberResultCallback_0_0(obj, member); -} -#endif - -template ::value>::type> -class _MemberResultCallback_0_0 : public ResultCallback { - public: - typedef ResultCallback base; - typedef R (T::*MemberSignature)(); - - private: - T* object_; - MemberSignature member_; - - public: - inline _MemberResultCallback_0_0(T* object, MemberSignature member) - : ResultCallback(), object_(object), member_(member) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback"); - } - - virtual R Run() { - if (!del) { - R result = (object_->*member_)(); - return result; - } else { - R result = (object_->*member_)(); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_0_0< - del, void, T, typename c_enable_if::value>::type> - : public Closure { - public: - typedef Closure base; - typedef void (T::*MemberSignature)(); - - private: - T* object_; - MemberSignature member_; - - public: - inline _MemberResultCallback_0_0(T* object, MemberSignature member) - : Closure(), object_(object), member_(member) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Closure"); - } - - virtual void Run() { - if (!del) { - (object_->*member_)(); - } else { - (object_->*member_)(); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_0_0::base* NewCallback( - T1* obj, R (T2::*member)()) { - return new _MemberResultCallback_0_0(obj, member); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_0_0::base* -NewPermanentCallback(T1* obj, R (T2::*member)()) { - return new _MemberResultCallback_0_0(obj, member); -} -#endif - -template -class _FunctionResultCallback_0_0 : public ResultCallback { - public: - typedef ResultCallback base; - typedef R (*FunctionSignature)(); - - private: - FunctionSignature function_; - - public: - explicit inline _FunctionResultCallback_0_0(FunctionSignature function) - : ResultCallback(), function_(function) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback"); - } - - virtual R Run() { - if (!del) { - R result = (*function_)(); - return result; - } else { - R result = (*function_)(); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_0_0 : public Closure { - public: - typedef Closure base; - typedef void (*FunctionSignature)(); - - private: - FunctionSignature function_; - - public: - explicit inline _FunctionResultCallback_0_0(FunctionSignature function) - : Closure(), function_(function) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Closure"); - } - - virtual void Run() { - if (!del) { - (*function_)(); - } else { - (*function_)(); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_0_0::base* NewCallback( - R (*function)()) { - return new _FunctionResultCallback_0_0(function); -} - -template -inline typename _FunctionResultCallback_0_0::base* -NewPermanentCallback(R (*function)()) { - return new _FunctionResultCallback_0_0(function); -} - -template ::value>::type> -class _ConstMemberResultCallback_1_0 : public ResultCallback { - public: - typedef ResultCallback base; - typedef R (T::*MemberSignature)(P1) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - - public: - inline _ConstMemberResultCallback_1_0(const T* object, MemberSignature member, - typename ConstRef::type p1) - : ResultCallback(), object_(object), member_(member), p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback"); - } - - virtual R Run() { - if (!del) { - R result = (object_->*member_)(p1_); - return result; - } else { - R result = (object_->*member_)(p1_); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_1_0< - del, void, T, P1, typename c_enable_if::value>::type> - : public Closure { - public: - typedef Closure base; - typedef void (T::*MemberSignature)(P1) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - - public: - inline _ConstMemberResultCallback_1_0(const T* object, MemberSignature member, - typename ConstRef::type p1) - : Closure(), object_(object), member_(member), p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Closure"); - } - - virtual void Run() { - if (!del) { - (object_->*member_)(p1_); - } else { - (object_->*member_)(p1_); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_1_0::base* -NewCallback(const T1* obj, R (T2::*member)(P1) const, - typename ConstRef::type p1) { - return new _ConstMemberResultCallback_1_0(obj, member, p1); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_1_0::base* -NewPermanentCallback(const T1* obj, R (T2::*member)(P1) const, - typename ConstRef::type p1) { - return new _ConstMemberResultCallback_1_0(obj, member, p1); -} -#endif - -template ::value>::type> -class _MemberResultCallback_1_0 : public ResultCallback { - public: - typedef ResultCallback base; - typedef R (T::*MemberSignature)(P1); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - - public: - inline _MemberResultCallback_1_0(T* object, MemberSignature member, - typename ConstRef::type p1) - : ResultCallback(), object_(object), member_(member), p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback"); - } - - virtual R Run() { - if (!del) { - R result = (object_->*member_)(p1_); - return result; - } else { - R result = (object_->*member_)(p1_); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_1_0< - del, void, T, P1, typename c_enable_if::value>::type> - : public Closure { - public: - typedef Closure base; - typedef void (T::*MemberSignature)(P1); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - - public: - inline _MemberResultCallback_1_0(T* object, MemberSignature member, - typename ConstRef::type p1) - : Closure(), object_(object), member_(member), p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Closure"); - } - - virtual void Run() { - if (!del) { - (object_->*member_)(p1_); - } else { - (object_->*member_)(p1_); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_1_0::base* NewCallback( - T1* obj, R (T2::*member)(P1), typename ConstRef::type p1) { - return new _MemberResultCallback_1_0(obj, member, p1); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_1_0::base* -NewPermanentCallback(T1* obj, R (T2::*member)(P1), - typename ConstRef::type p1) { - return new _MemberResultCallback_1_0(obj, member, p1); -} -#endif - -template -class _FunctionResultCallback_1_0 : public ResultCallback { - public: - typedef ResultCallback base; - typedef R (*FunctionSignature)(P1); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - - public: - inline _FunctionResultCallback_1_0(FunctionSignature function, - typename ConstRef::type p1) - : ResultCallback(), function_(function), p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback"); - } - - virtual R Run() { - if (!del) { - R result = (*function_)(p1_); - return result; - } else { - R result = (*function_)(p1_); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_1_0 : public Closure { - public: - typedef Closure base; - typedef void (*FunctionSignature)(P1); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - - public: - inline _FunctionResultCallback_1_0(FunctionSignature function, - typename ConstRef::type p1) - : Closure(), function_(function), p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Closure"); - } - - virtual void Run() { - if (!del) { - (*function_)(p1_); - } else { - (*function_)(p1_); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_1_0::base* NewCallback( - R (*function)(P1), typename ConstRef::type p1) { - return new _FunctionResultCallback_1_0(function, p1); -} - -template -inline typename _FunctionResultCallback_1_0::base* -NewPermanentCallback(R (*function)(P1), typename ConstRef::type p1) { - return new _FunctionResultCallback_1_0(function, p1); -} - -template ::value>::type> -class _ConstMemberResultCallback_2_0 : public ResultCallback { - public: - typedef ResultCallback base; - typedef R (T::*MemberSignature)(P1, P2) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _ConstMemberResultCallback_2_0(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2) - : ResultCallback(), - object_(object), - member_(member), - p1_(p1), - p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback"); - } - - virtual R Run() { - if (!del) { - R result = (object_->*member_)(p1_, p2_); - return result; - } else { - R result = (object_->*member_)(p1_, p2_); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_2_0< - del, void, T, P1, P2, - typename c_enable_if::value>::type> : public Closure { - public: - typedef Closure base; - typedef void (T::*MemberSignature)(P1, P2) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _ConstMemberResultCallback_2_0(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2) - : Closure(), object_(object), member_(member), p1_(p1), p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Closure"); - } - - virtual void Run() { - if (!del) { - (object_->*member_)(p1_, p2_); - } else { - (object_->*member_)(p1_, p2_); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_2_0::base* -NewCallback(const T1* obj, R (T2::*member)(P1, P2) const, - typename ConstRef::type p1, typename ConstRef::type p2) { - return new _ConstMemberResultCallback_2_0(obj, member, - p1, p2); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_2_0::base* -NewPermanentCallback(const T1* obj, R (T2::*member)(P1, P2) const, - typename ConstRef::type p1, - typename ConstRef::type p2) { - return new _ConstMemberResultCallback_2_0(obj, member, - p1, p2); -} -#endif - -template ::value>::type> -class _MemberResultCallback_2_0 : public ResultCallback { - public: - typedef ResultCallback base; - typedef R (T::*MemberSignature)(P1, P2); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _MemberResultCallback_2_0(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2) - : ResultCallback(), - object_(object), - member_(member), - p1_(p1), - p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback"); - } - - virtual R Run() { - if (!del) { - R result = (object_->*member_)(p1_, p2_); - return result; - } else { - R result = (object_->*member_)(p1_, p2_); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_2_0< - del, void, T, P1, P2, - typename c_enable_if::value>::type> : public Closure { - public: - typedef Closure base; - typedef void (T::*MemberSignature)(P1, P2); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _MemberResultCallback_2_0(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2) - : Closure(), object_(object), member_(member), p1_(p1), p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Closure"); - } - - virtual void Run() { - if (!del) { - (object_->*member_)(p1_, p2_); - } else { - (object_->*member_)(p1_, p2_); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_2_0::base* -NewCallback(T1* obj, R (T2::*member)(P1, P2), typename ConstRef::type p1, - typename ConstRef::type p2) { - return new _MemberResultCallback_2_0(obj, member, p1, - p2); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_2_0::base* -NewPermanentCallback(T1* obj, R (T2::*member)(P1, P2), - typename ConstRef::type p1, - typename ConstRef::type p2) { - return new _MemberResultCallback_2_0(obj, member, p1, - p2); -} -#endif - -template -class _FunctionResultCallback_2_0 : public ResultCallback { - public: - typedef ResultCallback base; - typedef R (*FunctionSignature)(P1, P2); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _FunctionResultCallback_2_0(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2) - : ResultCallback(), function_(function), p1_(p1), p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback"); - } - - virtual R Run() { - if (!del) { - R result = (*function_)(p1_, p2_); - return result; - } else { - R result = (*function_)(p1_, p2_); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_2_0 : public Closure { - public: - typedef Closure base; - typedef void (*FunctionSignature)(P1, P2); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _FunctionResultCallback_2_0(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2) - : Closure(), function_(function), p1_(p1), p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Closure"); - } - - virtual void Run() { - if (!del) { - (*function_)(p1_, p2_); - } else { - (*function_)(p1_, p2_); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_2_0::base* NewCallback( - R (*function)(P1, P2), typename ConstRef::type p1, - typename ConstRef::type p2) { - return new _FunctionResultCallback_2_0(function, p1, p2); -} - -template -inline typename _FunctionResultCallback_2_0::base* -NewPermanentCallback(R (*function)(P1, P2), typename ConstRef::type p1, - typename ConstRef::type p2) { - return new _FunctionResultCallback_2_0(function, p1, p2); -} - -template ::value>::type> -class _ConstMemberResultCallback_3_0 : public ResultCallback { - public: - typedef ResultCallback base; - typedef R (T::*MemberSignature)(P1, P2, P3) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _ConstMemberResultCallback_3_0(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : ResultCallback(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback"); - } - - virtual R Run() { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_3_0< - del, void, T, P1, P2, P3, - typename c_enable_if::value>::type> : public Closure { - public: - typedef Closure base; - typedef void (T::*MemberSignature)(P1, P2, P3) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _ConstMemberResultCallback_3_0(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : Closure(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Closure"); - } - - virtual void Run() { - if (!del) { - (object_->*member_)(p1_, p2_, p3_); - } else { - (object_->*member_)(p1_, p2_, p3_); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_3_0::base* -NewCallback(const T1* obj, R (T2::*member)(P1, P2, P3) const, - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _ConstMemberResultCallback_3_0( - obj, member, p1, p2, p3); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_3_0::base* -NewPermanentCallback(const T1* obj, R (T2::*member)(P1, P2, P3) const, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _ConstMemberResultCallback_3_0( - obj, member, p1, p2, p3); -} -#endif - -template ::value>::type> -class _MemberResultCallback_3_0 : public ResultCallback { - public: - typedef ResultCallback base; - typedef R (T::*MemberSignature)(P1, P2, P3); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _MemberResultCallback_3_0(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : ResultCallback(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback"); - } - - virtual R Run() { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_3_0< - del, void, T, P1, P2, P3, - typename c_enable_if::value>::type> : public Closure { - public: - typedef Closure base; - typedef void (T::*MemberSignature)(P1, P2, P3); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _MemberResultCallback_3_0(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : Closure(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Closure"); - } - - virtual void Run() { - if (!del) { - (object_->*member_)(p1_, p2_, p3_); - } else { - (object_->*member_)(p1_, p2_, p3_); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_3_0::base* -NewCallback(T1* obj, R (T2::*member)(P1, P2, P3), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _MemberResultCallback_3_0(obj, member, p1, - p2, p3); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_3_0::base* -NewPermanentCallback(T1* obj, R (T2::*member)(P1, P2, P3), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _MemberResultCallback_3_0(obj, member, - p1, p2, p3); -} -#endif - -template -class _FunctionResultCallback_3_0 : public ResultCallback { - public: - typedef ResultCallback base; - typedef R (*FunctionSignature)(P1, P2, P3); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _FunctionResultCallback_3_0(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : ResultCallback(), function_(function), p1_(p1), p2_(p2), p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback"); - } - - virtual R Run() { - if (!del) { - R result = (*function_)(p1_, p2_, p3_); - return result; - } else { - R result = (*function_)(p1_, p2_, p3_); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_3_0 : public Closure { - public: - typedef Closure base; - typedef void (*FunctionSignature)(P1, P2, P3); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _FunctionResultCallback_3_0(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : Closure(), function_(function), p1_(p1), p2_(p2), p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Closure"); - } - - virtual void Run() { - if (!del) { - (*function_)(p1_, p2_, p3_); - } else { - (*function_)(p1_, p2_, p3_); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_3_0::base* -NewCallback(R (*function)(P1, P2, P3), typename ConstRef::type p1, - typename ConstRef::type p2, typename ConstRef::type p3) { - return new _FunctionResultCallback_3_0(function, p1, p2, - p3); -} - -template -inline typename _FunctionResultCallback_3_0::base* -NewPermanentCallback(R (*function)(P1, P2, P3), typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _FunctionResultCallback_3_0(function, p1, p2, - p3); -} - -template ::value>::type> -class _ConstMemberResultCallback_4_0 : public ResultCallback { - public: - typedef ResultCallback base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _ConstMemberResultCallback_4_0(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : ResultCallback(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback"); - } - - virtual R Run() { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, p4_); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, p4_); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_4_0< - del, void, T, P1, P2, P3, P4, - typename c_enable_if::value>::type> : public Closure { - public: - typedef Closure base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _ConstMemberResultCallback_4_0(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : Closure(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Closure"); - } - - virtual void Run() { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline - typename _ConstMemberResultCallback_4_0::base* - NewCallback(const T1* obj, R (T2::*member)(P1, P2, P3, P4) const, - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) { - return new _ConstMemberResultCallback_4_0( - obj, member, p1, p2, p3, p4); -} -#endif - -#ifndef SWIG -template -inline - typename _ConstMemberResultCallback_4_0::base* - NewPermanentCallback(const T1* obj, R (T2::*member)(P1, P2, P3, P4) const, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) { - return new _ConstMemberResultCallback_4_0( - obj, member, p1, p2, p3, p4); -} -#endif - -template ::value>::type> -class _MemberResultCallback_4_0 : public ResultCallback { - public: - typedef ResultCallback base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _MemberResultCallback_4_0(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : ResultCallback(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback"); - } - - virtual R Run() { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, p4_); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, p4_); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_4_0< - del, void, T, P1, P2, P3, P4, - typename c_enable_if::value>::type> : public Closure { - public: - typedef Closure base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _MemberResultCallback_4_0(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : Closure(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Closure"); - } - - virtual void Run() { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_4_0::base* -NewCallback(T1* obj, R (T2::*member)(P1, P2, P3, P4), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4) { - return new _MemberResultCallback_4_0( - obj, member, p1, p2, p3, p4); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_4_0::base* -NewPermanentCallback(T1* obj, R (T2::*member)(P1, P2, P3, P4), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) { - return new _MemberResultCallback_4_0( - obj, member, p1, p2, p3, p4); -} -#endif - -template -class _FunctionResultCallback_4_0 : public ResultCallback { - public: - typedef ResultCallback base; - typedef R (*FunctionSignature)(P1, P2, P3, P4); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _FunctionResultCallback_4_0(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : ResultCallback(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback"); - } - - virtual R Run() { - if (!del) { - R result = (*function_)(p1_, p2_, p3_, p4_); - return result; - } else { - R result = (*function_)(p1_, p2_, p3_, p4_); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_4_0 : public Closure { - public: - typedef Closure base; - typedef void (*FunctionSignature)(P1, P2, P3, P4); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _FunctionResultCallback_4_0(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : Closure(), function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Closure"); - } - - virtual void Run() { - if (!del) { - (*function_)(p1_, p2_, p3_, p4_); - } else { - (*function_)(p1_, p2_, p3_, p4_); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_4_0::base* -NewCallback(R (*function)(P1, P2, P3, P4), typename ConstRef::type p1, - typename ConstRef::type p2, typename ConstRef::type p3, - typename ConstRef::type p4) { - return new _FunctionResultCallback_4_0(function, p1, - p2, p3, p4); -} - -template -inline typename _FunctionResultCallback_4_0::base* -NewPermanentCallback(R (*function)(P1, P2, P3, P4), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) { - return new _FunctionResultCallback_4_0(function, p1, - p2, p3, p4); -} - -template ::value>::type> -class _ConstMemberResultCallback_5_0 : public ResultCallback { - public: - typedef ResultCallback base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, P5) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _ConstMemberResultCallback_5_0(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : ResultCallback(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback"); - } - - virtual R Run() { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_5_0< - del, void, T, P1, P2, P3, P4, P5, - typename c_enable_if::value>::type> : public Closure { - public: - typedef Closure base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, P5) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _ConstMemberResultCallback_5_0(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : Closure(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Closure"); - } - - virtual void Run() { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_5_0::base* -NewCallback(const T1* obj, R (T2::*member)(P1, P2, P3, P4, P5) const, - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _ConstMemberResultCallback_5_0( - obj, member, p1, p2, p3, p4, p5); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_5_0::base* -NewPermanentCallback(const T1* obj, R (T2::*member)(P1, P2, P3, P4, P5) const, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _ConstMemberResultCallback_5_0( - obj, member, p1, p2, p3, p4, p5); -} -#endif - -template ::value>::type> -class _MemberResultCallback_5_0 : public ResultCallback { - public: - typedef ResultCallback base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, P5); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _MemberResultCallback_5_0(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : ResultCallback(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback"); - } - - virtual R Run() { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_5_0< - del, void, T, P1, P2, P3, P4, P5, - typename c_enable_if::value>::type> : public Closure { - public: - typedef Closure base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, P5); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _MemberResultCallback_5_0(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : Closure(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Closure"); - } - - virtual void Run() { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline - typename _MemberResultCallback_5_0::base* - NewCallback(T1* obj, R (T2::*member)(P1, P2, P3, P4, P5), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _MemberResultCallback_5_0( - obj, member, p1, p2, p3, p4, p5); -} -#endif - -#ifndef SWIG -template -inline - typename _MemberResultCallback_5_0::base* - NewPermanentCallback(T1* obj, R (T2::*member)(P1, P2, P3, P4, P5), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _MemberResultCallback_5_0( - obj, member, p1, p2, p3, p4, p5); -} -#endif - -template -class _FunctionResultCallback_5_0 : public ResultCallback { - public: - typedef ResultCallback base; - typedef R (*FunctionSignature)(P1, P2, P3, P4, P5); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _FunctionResultCallback_5_0(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : ResultCallback(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback"); - } - - virtual R Run() { - if (!del) { - R result = (*function_)(p1_, p2_, p3_, p4_, p5_); - return result; - } else { - R result = (*function_)(p1_, p2_, p3_, p4_, p5_); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_5_0 - : public Closure { - public: - typedef Closure base; - typedef void (*FunctionSignature)(P1, P2, P3, P4, P5); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _FunctionResultCallback_5_0(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : Closure(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Closure"); - } - - virtual void Run() { - if (!del) { - (*function_)(p1_, p2_, p3_, p4_, p5_); - } else { - (*function_)(p1_, p2_, p3_, p4_, p5_); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_5_0::base* -NewCallback(R (*function)(P1, P2, P3, P4, P5), typename ConstRef::type p1, - typename ConstRef::type p2, typename ConstRef::type p3, - typename ConstRef::type p4, typename ConstRef::type p5) { - return new _FunctionResultCallback_5_0( - function, p1, p2, p3, p4, p5); -} - -template -inline typename _FunctionResultCallback_5_0::base* -NewPermanentCallback(R (*function)(P1, P2, P3, P4, P5), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _FunctionResultCallback_5_0( - function, p1, p2, p3, p4, p5); -} - -template ::value>::type> -class _ConstMemberResultCallback_6_0 : public ResultCallback { - public: - typedef ResultCallback base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, P5, P6) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _ConstMemberResultCallback_6_0(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : ResultCallback(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback"); - } - - virtual R Run() { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_6_0< - del, void, T, P1, P2, P3, P4, P5, P6, - typename c_enable_if::value>::type> : public Closure { - public: - typedef Closure base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, P5, P6) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _ConstMemberResultCallback_6_0(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : Closure(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Closure"); - } - - virtual void Run() { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_6_0::base* -NewCallback(const T1* obj, R (T2::*member)(P1, P2, P3, P4, P5, P6) const, - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5, typename ConstRef::type p6) { - return new _ConstMemberResultCallback_6_0(obj, member, p1, p2, p3, p4, p5, - p6); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_6_0::base* -NewPermanentCallback( - const T1* obj, R (T2::*member)(P1, P2, P3, P4, P5, P6) const, - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5, typename ConstRef::type p6) { - return new _ConstMemberResultCallback_6_0(obj, member, p1, p2, p3, p4, p5, - p6); -} -#endif - -template ::value>::type> -class _MemberResultCallback_6_0 : public ResultCallback { - public: - typedef ResultCallback base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, P5, P6); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _MemberResultCallback_6_0(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : ResultCallback(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback"); - } - - virtual R Run() { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_6_0< - del, void, T, P1, P2, P3, P4, P5, P6, - typename c_enable_if::value>::type> : public Closure { - public: - typedef Closure base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, P5, P6); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _MemberResultCallback_6_0(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : Closure(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Closure"); - } - - virtual void Run() { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_6_0::base* -NewCallback(T1* obj, R (T2::*member)(P1, P2, P3, P4, P5, P6), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5, typename ConstRef::type p6) { - return new _MemberResultCallback_6_0( - obj, member, p1, p2, p3, p4, p5, p6); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_6_0::base* -NewPermanentCallback(T1* obj, R (T2::*member)(P1, P2, P3, P4, P5, P6), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) { - return new _MemberResultCallback_6_0( - obj, member, p1, p2, p3, p4, p5, p6); -} -#endif - -template -class _FunctionResultCallback_6_0 : public ResultCallback { - public: - typedef ResultCallback base; - typedef R (*FunctionSignature)(P1, P2, P3, P4, P5, P6); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _FunctionResultCallback_6_0(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : ResultCallback(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback"); - } - - virtual R Run() { - if (!del) { - R result = (*function_)(p1_, p2_, p3_, p4_, p5_, p6_); - return result; - } else { - R result = (*function_)(p1_, p2_, p3_, p4_, p5_, p6_); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_6_0 - : public Closure { - public: - typedef Closure base; - typedef void (*FunctionSignature)(P1, P2, P3, P4, P5, P6); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _FunctionResultCallback_6_0(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : Closure(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Closure"); - } - - virtual void Run() { - if (!del) { - (*function_)(p1_, p2_, p3_, p4_, p5_, p6_); - } else { - (*function_)(p1_, p2_, p3_, p4_, p5_, p6_); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline - typename _FunctionResultCallback_6_0::base* - NewCallback(R (*function)(P1, P2, P3, P4, P5, P6), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) { - return new _FunctionResultCallback_6_0( - function, p1, p2, p3, p4, p5, p6); -} - -template -inline typename _FunctionResultCallback_6_0::base* -NewPermanentCallback(R (*function)(P1, P2, P3, P4, P5, P6), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) { - return new _FunctionResultCallback_6_0( - function, p1, p2, p3, p4, p5, p6); -} - -template ::value>::type> -class _ConstMemberResultCallback_0_1 : public ResultCallback1 { - public: - typedef ResultCallback1 base; - typedef R (T::*MemberSignature)(A1) const; - - private: - const T* object_; - MemberSignature member_; - - public: - inline _ConstMemberResultCallback_0_1(const T* object, MemberSignature member) - : ResultCallback1(), object_(object), member_(member) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1"); - } - - virtual R Run(A1 a1) { - if (!del) { - R result = (object_->*member_)(a1); - return result; - } else { - R result = (object_->*member_)(a1); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_0_1< - del, void, T, A1, typename c_enable_if::value>::type> - : public Callback1 { - public: - typedef Callback1 base; - typedef void (T::*MemberSignature)(A1) const; - - private: - const T* object_; - MemberSignature member_; - - public: - inline _ConstMemberResultCallback_0_1(const T* object, MemberSignature member) - : Callback1(), object_(object), member_(member) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback1"); - } - - virtual void Run(A1 a1) { - if (!del) { - (object_->*member_)(a1); - } else { - (object_->*member_)(a1); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_0_1::base* -NewCallback(const T1* obj, R (T2::*member)(A1) const) { - return new _ConstMemberResultCallback_0_1(obj, member); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_0_1::base* -NewPermanentCallback(const T1* obj, R (T2::*member)(A1) const) { - return new _ConstMemberResultCallback_0_1(obj, member); -} -#endif - -template ::value>::type> -class _MemberResultCallback_0_1 : public ResultCallback1 { - public: - typedef ResultCallback1 base; - typedef R (T::*MemberSignature)(A1); - - private: - T* object_; - MemberSignature member_; - - public: - inline _MemberResultCallback_0_1(T* object, MemberSignature member) - : ResultCallback1(), object_(object), member_(member) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1"); - } - - virtual R Run(A1 a1) { - if (!del) { - R result = (object_->*member_)(a1); - return result; - } else { - R result = (object_->*member_)(a1); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_0_1< - del, void, T, A1, typename c_enable_if::value>::type> - : public Callback1 { - public: - typedef Callback1 base; - typedef void (T::*MemberSignature)(A1); - - private: - T* object_; - MemberSignature member_; - - public: - inline _MemberResultCallback_0_1(T* object, MemberSignature member) - : Callback1(), object_(object), member_(member) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback1"); - } - - virtual void Run(A1 a1) { - if (!del) { - (object_->*member_)(a1); - } else { - (object_->*member_)(a1); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_0_1::base* NewCallback( - T1* obj, R (T2::*member)(A1)) { - return new _MemberResultCallback_0_1(obj, member); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_0_1::base* -NewPermanentCallback(T1* obj, R (T2::*member)(A1)) { - return new _MemberResultCallback_0_1(obj, member); -} -#endif - -template -class _FunctionResultCallback_0_1 : public ResultCallback1 { - public: - typedef ResultCallback1 base; - typedef R (*FunctionSignature)(A1); - - private: - FunctionSignature function_; - - public: - explicit inline _FunctionResultCallback_0_1(FunctionSignature function) - : ResultCallback1(), function_(function) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1"); - } - - virtual R Run(A1 a1) { - if (!del) { - R result = (*function_)(a1); - return result; - } else { - R result = (*function_)(a1); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_0_1 : public Callback1 { - public: - typedef Callback1 base; - typedef void (*FunctionSignature)(A1); - - private: - FunctionSignature function_; - - public: - explicit inline _FunctionResultCallback_0_1(FunctionSignature function) - : Callback1(), function_(function) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback1"); - } - - virtual void Run(A1 a1) { - if (!del) { - (*function_)(a1); - } else { - (*function_)(a1); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_0_1::base* NewCallback( - R (*function)(A1)) { - return new _FunctionResultCallback_0_1(function); -} - -template -inline typename _FunctionResultCallback_0_1::base* -NewPermanentCallback(R (*function)(A1)) { - return new _FunctionResultCallback_0_1(function); -} - -template ::value>::type> -class _ConstMemberResultCallback_1_1 : public ResultCallback1 { - public: - typedef ResultCallback1 base; - typedef R (T::*MemberSignature)(P1, A1) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - - public: - inline _ConstMemberResultCallback_1_1(const T* object, MemberSignature member, - typename ConstRef::type p1) - : ResultCallback1(), object_(object), member_(member), p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1"); - } - - virtual R Run(A1 a1) { - if (!del) { - R result = (object_->*member_)(p1_, a1); - return result; - } else { - R result = (object_->*member_)(p1_, a1); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_1_1< - del, void, T, P1, A1, - typename c_enable_if::value>::type> - : public Callback1 { - public: - typedef Callback1 base; - typedef void (T::*MemberSignature)(P1, A1) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - - public: - inline _ConstMemberResultCallback_1_1(const T* object, MemberSignature member, - typename ConstRef::type p1) - : Callback1(), object_(object), member_(member), p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback1"); - } - - virtual void Run(A1 a1) { - if (!del) { - (object_->*member_)(p1_, a1); - } else { - (object_->*member_)(p1_, a1); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_1_1::base* -NewCallback(const T1* obj, R (T2::*member)(P1, A1) const, - typename ConstRef::type p1) { - return new _ConstMemberResultCallback_1_1(obj, member, - p1); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_1_1::base* -NewPermanentCallback(const T1* obj, R (T2::*member)(P1, A1) const, - typename ConstRef::type p1) { - return new _ConstMemberResultCallback_1_1(obj, member, - p1); -} -#endif - -template ::value>::type> -class _MemberResultCallback_1_1 : public ResultCallback1 { - public: - typedef ResultCallback1 base; - typedef R (T::*MemberSignature)(P1, A1); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - - public: - inline _MemberResultCallback_1_1(T* object, MemberSignature member, - typename ConstRef::type p1) - : ResultCallback1(), object_(object), member_(member), p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1"); - } - - virtual R Run(A1 a1) { - if (!del) { - R result = (object_->*member_)(p1_, a1); - return result; - } else { - R result = (object_->*member_)(p1_, a1); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_1_1< - del, void, T, P1, A1, - typename c_enable_if::value>::type> - : public Callback1 { - public: - typedef Callback1 base; - typedef void (T::*MemberSignature)(P1, A1); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - - public: - inline _MemberResultCallback_1_1(T* object, MemberSignature member, - typename ConstRef::type p1) - : Callback1(), object_(object), member_(member), p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback1"); - } - - virtual void Run(A1 a1) { - if (!del) { - (object_->*member_)(p1_, a1); - } else { - (object_->*member_)(p1_, a1); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_1_1::base* -NewCallback(T1* obj, R (T2::*member)(P1, A1), typename ConstRef::type p1) { - return new _MemberResultCallback_1_1(obj, member, p1); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_1_1::base* -NewPermanentCallback(T1* obj, R (T2::*member)(P1, A1), - typename ConstRef::type p1) { - return new _MemberResultCallback_1_1(obj, member, p1); -} -#endif - -template -class _FunctionResultCallback_1_1 : public ResultCallback1 { - public: - typedef ResultCallback1 base; - typedef R (*FunctionSignature)(P1, A1); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - - public: - inline _FunctionResultCallback_1_1(FunctionSignature function, - typename ConstRef::type p1) - : ResultCallback1(), function_(function), p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1"); - } - - virtual R Run(A1 a1) { - if (!del) { - R result = (*function_)(p1_, a1); - return result; - } else { - R result = (*function_)(p1_, a1); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_1_1 : public Callback1 { - public: - typedef Callback1 base; - typedef void (*FunctionSignature)(P1, A1); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - - public: - inline _FunctionResultCallback_1_1(FunctionSignature function, - typename ConstRef::type p1) - : Callback1(), function_(function), p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback1"); - } - - virtual void Run(A1 a1) { - if (!del) { - (*function_)(p1_, a1); - } else { - (*function_)(p1_, a1); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_1_1::base* NewCallback( - R (*function)(P1, A1), typename ConstRef::type p1) { - return new _FunctionResultCallback_1_1(function, p1); -} - -template -inline typename _FunctionResultCallback_1_1::base* -NewPermanentCallback(R (*function)(P1, A1), typename ConstRef::type p1) { - return new _FunctionResultCallback_1_1(function, p1); -} - -template ::value>::type> -class _ConstMemberResultCallback_2_1 : public ResultCallback1 { - public: - typedef ResultCallback1 base; - typedef R (T::*MemberSignature)(P1, P2, A1) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _ConstMemberResultCallback_2_1(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2) - : ResultCallback1(), - object_(object), - member_(member), - p1_(p1), - p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1"); - } - - virtual R Run(A1 a1) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, a1); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, a1); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_2_1< - del, void, T, P1, P2, A1, - typename c_enable_if::value>::type> - : public Callback1 { - public: - typedef Callback1 base; - typedef void (T::*MemberSignature)(P1, P2, A1) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _ConstMemberResultCallback_2_1(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2) - : Callback1(), object_(object), member_(member), p1_(p1), p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback1"); - } - - virtual void Run(A1 a1) { - if (!del) { - (object_->*member_)(p1_, p2_, a1); - } else { - (object_->*member_)(p1_, p2_, a1); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_2_1::base* -NewCallback(const T1* obj, R (T2::*member)(P1, P2, A1) const, - typename ConstRef::type p1, typename ConstRef::type p2) { - return new _ConstMemberResultCallback_2_1( - obj, member, p1, p2); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_2_1::base* -NewPermanentCallback(const T1* obj, R (T2::*member)(P1, P2, A1) const, - typename ConstRef::type p1, - typename ConstRef::type p2) { - return new _ConstMemberResultCallback_2_1( - obj, member, p1, p2); -} -#endif - -template ::value>::type> -class _MemberResultCallback_2_1 : public ResultCallback1 { - public: - typedef ResultCallback1 base; - typedef R (T::*MemberSignature)(P1, P2, A1); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _MemberResultCallback_2_1(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2) - : ResultCallback1(), - object_(object), - member_(member), - p1_(p1), - p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1"); - } - - virtual R Run(A1 a1) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, a1); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, a1); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_2_1< - del, void, T, P1, P2, A1, - typename c_enable_if::value>::type> - : public Callback1 { - public: - typedef Callback1 base; - typedef void (T::*MemberSignature)(P1, P2, A1); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _MemberResultCallback_2_1(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2) - : Callback1(), object_(object), member_(member), p1_(p1), p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback1"); - } - - virtual void Run(A1 a1) { - if (!del) { - (object_->*member_)(p1_, p2_, a1); - } else { - (object_->*member_)(p1_, p2_, a1); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_2_1::base* -NewCallback(T1* obj, R (T2::*member)(P1, P2, A1), - typename ConstRef::type p1, typename ConstRef::type p2) { - return new _MemberResultCallback_2_1(obj, member, p1, - p2); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_2_1::base* -NewPermanentCallback(T1* obj, R (T2::*member)(P1, P2, A1), - typename ConstRef::type p1, - typename ConstRef::type p2) { - return new _MemberResultCallback_2_1(obj, member, - p1, p2); -} -#endif - -template -class _FunctionResultCallback_2_1 : public ResultCallback1 { - public: - typedef ResultCallback1 base; - typedef R (*FunctionSignature)(P1, P2, A1); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _FunctionResultCallback_2_1(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2) - : ResultCallback1(), function_(function), p1_(p1), p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1"); - } - - virtual R Run(A1 a1) { - if (!del) { - R result = (*function_)(p1_, p2_, a1); - return result; - } else { - R result = (*function_)(p1_, p2_, a1); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_2_1 - : public Callback1 { - public: - typedef Callback1 base; - typedef void (*FunctionSignature)(P1, P2, A1); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _FunctionResultCallback_2_1(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2) - : Callback1(), function_(function), p1_(p1), p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback1"); - } - - virtual void Run(A1 a1) { - if (!del) { - (*function_)(p1_, p2_, a1); - } else { - (*function_)(p1_, p2_, a1); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_2_1::base* -NewCallback(R (*function)(P1, P2, A1), typename ConstRef::type p1, - typename ConstRef::type p2) { - return new _FunctionResultCallback_2_1(function, p1, p2); -} - -template -inline typename _FunctionResultCallback_2_1::base* -NewPermanentCallback(R (*function)(P1, P2, A1), typename ConstRef::type p1, - typename ConstRef::type p2) { - return new _FunctionResultCallback_2_1(function, p1, - p2); -} - -template ::value>::type> -class _ConstMemberResultCallback_3_1 : public ResultCallback1 { - public: - typedef ResultCallback1 base; - typedef R (T::*MemberSignature)(P1, P2, P3, A1) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _ConstMemberResultCallback_3_1(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : ResultCallback1(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1"); - } - - virtual R Run(A1 a1) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, a1); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, a1); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_3_1< - del, void, T, P1, P2, P3, A1, - typename c_enable_if::value>::type> - : public Callback1 { - public: - typedef Callback1 base; - typedef void (T::*MemberSignature)(P1, P2, P3, A1) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _ConstMemberResultCallback_3_1(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : Callback1(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback1"); - } - - virtual void Run(A1 a1) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, a1); - } else { - (object_->*member_)(p1_, p2_, p3_, a1); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline - typename _ConstMemberResultCallback_3_1::base* - NewCallback(const T1* obj, R (T2::*member)(P1, P2, P3, A1) const, - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _ConstMemberResultCallback_3_1( - obj, member, p1, p2, p3); -} -#endif - -#ifndef SWIG -template -inline - typename _ConstMemberResultCallback_3_1::base* - NewPermanentCallback(const T1* obj, R (T2::*member)(P1, P2, P3, A1) const, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _ConstMemberResultCallback_3_1( - obj, member, p1, p2, p3); -} -#endif - -template ::value>::type> -class _MemberResultCallback_3_1 : public ResultCallback1 { - public: - typedef ResultCallback1 base; - typedef R (T::*MemberSignature)(P1, P2, P3, A1); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _MemberResultCallback_3_1(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : ResultCallback1(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1"); - } - - virtual R Run(A1 a1) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, a1); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, a1); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_3_1< - del, void, T, P1, P2, P3, A1, - typename c_enable_if::value>::type> - : public Callback1 { - public: - typedef Callback1 base; - typedef void (T::*MemberSignature)(P1, P2, P3, A1); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _MemberResultCallback_3_1(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : Callback1(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback1"); - } - - virtual void Run(A1 a1) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, a1); - } else { - (object_->*member_)(p1_, p2_, p3_, a1); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_3_1::base* -NewCallback(T1* obj, R (T2::*member)(P1, P2, P3, A1), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _MemberResultCallback_3_1(obj, member, - p1, p2, p3); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_3_1::base* -NewPermanentCallback(T1* obj, R (T2::*member)(P1, P2, P3, A1), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _MemberResultCallback_3_1( - obj, member, p1, p2, p3); -} -#endif - -template -class _FunctionResultCallback_3_1 : public ResultCallback1 { - public: - typedef ResultCallback1 base; - typedef R (*FunctionSignature)(P1, P2, P3, A1); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _FunctionResultCallback_3_1(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : ResultCallback1(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1"); - } - - virtual R Run(A1 a1) { - if (!del) { - R result = (*function_)(p1_, p2_, p3_, a1); - return result; - } else { - R result = (*function_)(p1_, p2_, p3_, a1); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_3_1 - : public Callback1 { - public: - typedef Callback1 base; - typedef void (*FunctionSignature)(P1, P2, P3, A1); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _FunctionResultCallback_3_1(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : Callback1(), function_(function), p1_(p1), p2_(p2), p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback1"); - } - - virtual void Run(A1 a1) { - if (!del) { - (*function_)(p1_, p2_, p3_, a1); - } else { - (*function_)(p1_, p2_, p3_, a1); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_3_1::base* -NewCallback(R (*function)(P1, P2, P3, A1), typename ConstRef::type p1, - typename ConstRef::type p2, typename ConstRef::type p3) { - return new _FunctionResultCallback_3_1(function, p1, - p2, p3); -} - -template -inline typename _FunctionResultCallback_3_1::base* -NewPermanentCallback(R (*function)(P1, P2, P3, A1), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _FunctionResultCallback_3_1(function, p1, - p2, p3); -} - -template ::value>::type> -class _ConstMemberResultCallback_4_1 : public ResultCallback1 { - public: - typedef ResultCallback1 base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, A1) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _ConstMemberResultCallback_4_1(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : ResultCallback1(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1"); - } - - virtual R Run(A1 a1) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, a1); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, a1); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_4_1< - del, void, T, P1, P2, P3, P4, A1, - typename c_enable_if::value>::type> - : public Callback1 { - public: - typedef Callback1 base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, A1) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _ConstMemberResultCallback_4_1(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : Callback1(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback1"); - } - - virtual void Run(A1 a1) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, a1); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, a1); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_4_1::base* -NewCallback(const T1* obj, R (T2::*member)(P1, P2, P3, P4, A1) const, - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4) { - return new _ConstMemberResultCallback_4_1( - obj, member, p1, p2, p3, p4); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_4_1::base* -NewPermanentCallback(const T1* obj, R (T2::*member)(P1, P2, P3, P4, A1) const, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) { - return new _ConstMemberResultCallback_4_1( - obj, member, p1, p2, p3, p4); -} -#endif - -template ::value>::type> -class _MemberResultCallback_4_1 : public ResultCallback1 { - public: - typedef ResultCallback1 base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, A1); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _MemberResultCallback_4_1(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : ResultCallback1(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1"); - } - - virtual R Run(A1 a1) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, a1); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, a1); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_4_1< - del, void, T, P1, P2, P3, P4, A1, - typename c_enable_if::value>::type> - : public Callback1 { - public: - typedef Callback1 base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, A1); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _MemberResultCallback_4_1(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : Callback1(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback1"); - } - - virtual void Run(A1 a1) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, a1); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, a1); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline - typename _MemberResultCallback_4_1::base* - NewCallback(T1* obj, R (T2::*member)(P1, P2, P3, P4, A1), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) { - return new _MemberResultCallback_4_1( - obj, member, p1, p2, p3, p4); -} -#endif - -#ifndef SWIG -template -inline - typename _MemberResultCallback_4_1::base* - NewPermanentCallback(T1* obj, R (T2::*member)(P1, P2, P3, P4, A1), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) { - return new _MemberResultCallback_4_1( - obj, member, p1, p2, p3, p4); -} -#endif - -template -class _FunctionResultCallback_4_1 : public ResultCallback1 { - public: - typedef ResultCallback1 base; - typedef R (*FunctionSignature)(P1, P2, P3, P4, A1); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _FunctionResultCallback_4_1(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : ResultCallback1(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1"); - } - - virtual R Run(A1 a1) { - if (!del) { - R result = (*function_)(p1_, p2_, p3_, p4_, a1); - return result; - } else { - R result = (*function_)(p1_, p2_, p3_, p4_, a1); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_4_1 - : public Callback1 { - public: - typedef Callback1 base; - typedef void (*FunctionSignature)(P1, P2, P3, P4, A1); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _FunctionResultCallback_4_1(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : Callback1(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback1"); - } - - virtual void Run(A1 a1) { - if (!del) { - (*function_)(p1_, p2_, p3_, p4_, a1); - } else { - (*function_)(p1_, p2_, p3_, p4_, a1); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_4_1::base* -NewCallback(R (*function)(P1, P2, P3, P4, A1), typename ConstRef::type p1, - typename ConstRef::type p2, typename ConstRef::type p3, - typename ConstRef::type p4) { - return new _FunctionResultCallback_4_1( - function, p1, p2, p3, p4); -} - -template -inline typename _FunctionResultCallback_4_1::base* -NewPermanentCallback(R (*function)(P1, P2, P3, P4, A1), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) { - return new _FunctionResultCallback_4_1( - function, p1, p2, p3, p4); -} - -template ::value>::type> -class _ConstMemberResultCallback_5_1 : public ResultCallback1 { - public: - typedef ResultCallback1 base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, P5, A1) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _ConstMemberResultCallback_5_1(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : ResultCallback1(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1"); - } - - virtual R Run(A1 a1) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_5_1< - del, void, T, P1, P2, P3, P4, P5, A1, - typename c_enable_if::value>::type> - : public Callback1 { - public: - typedef Callback1 base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, P5, A1) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _ConstMemberResultCallback_5_1(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : Callback1(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback1"); - } - - virtual void Run(A1 a1) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_5_1::base* -NewCallback(const T1* obj, R (T2::*member)(P1, P2, P3, P4, P5, A1) const, - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _ConstMemberResultCallback_5_1(obj, member, p1, p2, p3, p4, - p5); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_5_1::base* -NewPermanentCallback(const T1* obj, - R (T2::*member)(P1, P2, P3, P4, P5, A1) const, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _ConstMemberResultCallback_5_1(obj, member, p1, p2, p3, p4, - p5); -} -#endif - -template ::value>::type> -class _MemberResultCallback_5_1 : public ResultCallback1 { - public: - typedef ResultCallback1 base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, P5, A1); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _MemberResultCallback_5_1(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : ResultCallback1(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1"); - } - - virtual R Run(A1 a1) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_5_1< - del, void, T, P1, P2, P3, P4, P5, A1, - typename c_enable_if::value>::type> - : public Callback1 { - public: - typedef Callback1 base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, P5, A1); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _MemberResultCallback_5_1(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : Callback1(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback1"); - } - - virtual void Run(A1 a1) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_5_1::base* -NewCallback(T1* obj, R (T2::*member)(P1, P2, P3, P4, P5, A1), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _MemberResultCallback_5_1( - obj, member, p1, p2, p3, p4, p5); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_5_1::base* -NewPermanentCallback(T1* obj, R (T2::*member)(P1, P2, P3, P4, P5, A1), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _MemberResultCallback_5_1( - obj, member, p1, p2, p3, p4, p5); -} -#endif - -template -class _FunctionResultCallback_5_1 : public ResultCallback1 { - public: - typedef ResultCallback1 base; - typedef R (*FunctionSignature)(P1, P2, P3, P4, P5, A1); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _FunctionResultCallback_5_1(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : ResultCallback1(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1"); - } - - virtual R Run(A1 a1) { - if (!del) { - R result = (*function_)(p1_, p2_, p3_, p4_, p5_, a1); - return result; - } else { - R result = (*function_)(p1_, p2_, p3_, p4_, p5_, a1); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_5_1 - : public Callback1 { - public: - typedef Callback1 base; - typedef void (*FunctionSignature)(P1, P2, P3, P4, P5, A1); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _FunctionResultCallback_5_1(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : Callback1(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback1"); - } - - virtual void Run(A1 a1) { - if (!del) { - (*function_)(p1_, p2_, p3_, p4_, p5_, a1); - } else { - (*function_)(p1_, p2_, p3_, p4_, p5_, a1); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline - typename _FunctionResultCallback_5_1::base* - NewCallback(R (*function)(P1, P2, P3, P4, P5, A1), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _FunctionResultCallback_5_1( - function, p1, p2, p3, p4, p5); -} - -template -inline typename _FunctionResultCallback_5_1::base* -NewPermanentCallback(R (*function)(P1, P2, P3, P4, P5, A1), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _FunctionResultCallback_5_1( - function, p1, p2, p3, p4, p5); -} - -template ::value>::type> -class _ConstMemberResultCallback_6_1 : public ResultCallback1 { - public: - typedef ResultCallback1 base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, P5, P6, A1) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _ConstMemberResultCallback_6_1(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : ResultCallback1(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1"); - } - - virtual R Run(A1 a1) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_6_1< - del, void, T, P1, P2, P3, P4, P5, P6, A1, - typename c_enable_if::value>::type> - : public Callback1 { - public: - typedef Callback1 base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, P5, P6, A1) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _ConstMemberResultCallback_6_1(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : Callback1(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback1"); - } - - virtual void Run(A1 a1) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_6_1::base* -NewCallback(const T1* obj, R (T2::*member)(P1, P2, P3, P4, P5, P6, A1) const, - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5, typename ConstRef::type p6) { - return new _ConstMemberResultCallback_6_1(obj, member, p1, p2, p3, p4, p5, - p6); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_6_1::base* -NewPermanentCallback( - const T1* obj, R (T2::*member)(P1, P2, P3, P4, P5, P6, A1) const, - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5, typename ConstRef::type p6) { - return new _ConstMemberResultCallback_6_1(obj, member, p1, p2, p3, p4, - p5, p6); -} -#endif - -template ::value>::type> -class _MemberResultCallback_6_1 : public ResultCallback1 { - public: - typedef ResultCallback1 base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, P5, P6, A1); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _MemberResultCallback_6_1(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : ResultCallback1(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1"); - } - - virtual R Run(A1 a1) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_6_1< - del, void, T, P1, P2, P3, P4, P5, P6, A1, - typename c_enable_if::value>::type> - : public Callback1 { - public: - typedef Callback1 base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, P5, P6, A1); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _MemberResultCallback_6_1(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : Callback1(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback1"); - } - - virtual void Run(A1 a1) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_6_1::base* -NewCallback(T1* obj, R (T2::*member)(P1, P2, P3, P4, P5, P6, A1), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5, typename ConstRef::type p6) { - return new _MemberResultCallback_6_1( - obj, member, p1, p2, p3, p4, p5, p6); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_6_1::base* -NewPermanentCallback(T1* obj, R (T2::*member)(P1, P2, P3, P4, P5, P6, A1), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) { - return new _MemberResultCallback_6_1(obj, member, p1, p2, p3, p4, p5, p6); -} -#endif - -template -class _FunctionResultCallback_6_1 : public ResultCallback1 { - public: - typedef ResultCallback1 base; - typedef R (*FunctionSignature)(P1, P2, P3, P4, P5, P6, A1); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _FunctionResultCallback_6_1(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : ResultCallback1(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1"); - } - - virtual R Run(A1 a1) { - if (!del) { - R result = (*function_)(p1_, p2_, p3_, p4_, p5_, p6_, a1); - return result; - } else { - R result = (*function_)(p1_, p2_, p3_, p4_, p5_, p6_, a1); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_6_1 - : public Callback1 { - public: - typedef Callback1 base; - typedef void (*FunctionSignature)(P1, P2, P3, P4, P5, P6, A1); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _FunctionResultCallback_6_1(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : Callback1(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback1"); - } - - virtual void Run(A1 a1) { - if (!del) { - (*function_)(p1_, p2_, p3_, p4_, p5_, p6_, a1); - } else { - (*function_)(p1_, p2_, p3_, p4_, p5_, p6_, a1); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_6_1::base* -NewCallback(R (*function)(P1, P2, P3, P4, P5, P6, A1), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5, typename ConstRef::type p6) { - return new _FunctionResultCallback_6_1( - function, p1, p2, p3, p4, p5, p6); -} - -template -inline typename _FunctionResultCallback_6_1::base* -NewPermanentCallback(R (*function)(P1, P2, P3, P4, P5, P6, A1), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) { - return new _FunctionResultCallback_6_1( - function, p1, p2, p3, p4, p5, p6); -} - -template ::value>::type> -class _ConstMemberResultCallback_0_2 : public ResultCallback2 { - public: - typedef ResultCallback2 base; - typedef R (T::*MemberSignature)(A1, A2) const; - - private: - const T* object_; - MemberSignature member_; - - public: - inline _ConstMemberResultCallback_0_2(const T* object, MemberSignature member) - : ResultCallback2(), object_(object), member_(member) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2"); - } - - virtual R Run(A1 a1, A2 a2) { - if (!del) { - R result = (object_->*member_)(a1, a2); - return result; - } else { - R result = (object_->*member_)(a1, a2); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_0_2< - del, void, T, A1, A2, - typename c_enable_if::value>::type> - : public Callback2 { - public: - typedef Callback2 base; - typedef void (T::*MemberSignature)(A1, A2) const; - - private: - const T* object_; - MemberSignature member_; - - public: - inline _ConstMemberResultCallback_0_2(const T* object, MemberSignature member) - : Callback2(), object_(object), member_(member) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback2"); - } - - virtual void Run(A1 a1, A2 a2) { - if (!del) { - (object_->*member_)(a1, a2); - } else { - (object_->*member_)(a1, a2); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_0_2::base* -NewCallback(const T1* obj, R (T2::*member)(A1, A2) const) { - return new _ConstMemberResultCallback_0_2(obj, member); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_0_2::base* -NewPermanentCallback(const T1* obj, R (T2::*member)(A1, A2) const) { - return new _ConstMemberResultCallback_0_2(obj, member); -} -#endif - -template ::value>::type> -class _MemberResultCallback_0_2 : public ResultCallback2 { - public: - typedef ResultCallback2 base; - typedef R (T::*MemberSignature)(A1, A2); - - private: - T* object_; - MemberSignature member_; - - public: - inline _MemberResultCallback_0_2(T* object, MemberSignature member) - : ResultCallback2(), object_(object), member_(member) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2"); - } - - virtual R Run(A1 a1, A2 a2) { - if (!del) { - R result = (object_->*member_)(a1, a2); - return result; - } else { - R result = (object_->*member_)(a1, a2); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_0_2< - del, void, T, A1, A2, - typename c_enable_if::value>::type> - : public Callback2 { - public: - typedef Callback2 base; - typedef void (T::*MemberSignature)(A1, A2); - - private: - T* object_; - MemberSignature member_; - - public: - inline _MemberResultCallback_0_2(T* object, MemberSignature member) - : Callback2(), object_(object), member_(member) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback2"); - } - - virtual void Run(A1 a1, A2 a2) { - if (!del) { - (object_->*member_)(a1, a2); - } else { - (object_->*member_)(a1, a2); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_0_2::base* -NewCallback(T1* obj, R (T2::*member)(A1, A2)) { - return new _MemberResultCallback_0_2(obj, member); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_0_2::base* -NewPermanentCallback(T1* obj, R (T2::*member)(A1, A2)) { - return new _MemberResultCallback_0_2(obj, member); -} -#endif - -template -class _FunctionResultCallback_0_2 : public ResultCallback2 { - public: - typedef ResultCallback2 base; - typedef R (*FunctionSignature)(A1, A2); - - private: - FunctionSignature function_; - - public: - explicit inline _FunctionResultCallback_0_2(FunctionSignature function) - : ResultCallback2(), function_(function) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2"); - } - - virtual R Run(A1 a1, A2 a2) { - if (!del) { - R result = (*function_)(a1, a2); - return result; - } else { - R result = (*function_)(a1, a2); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_0_2 - : public Callback2 { - public: - typedef Callback2 base; - typedef void (*FunctionSignature)(A1, A2); - - private: - FunctionSignature function_; - - public: - explicit inline _FunctionResultCallback_0_2(FunctionSignature function) - : Callback2(), function_(function) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback2"); - } - - virtual void Run(A1 a1, A2 a2) { - if (!del) { - (*function_)(a1, a2); - } else { - (*function_)(a1, a2); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_0_2::base* NewCallback( - R (*function)(A1, A2)) { - return new _FunctionResultCallback_0_2(function); -} - -template -inline typename _FunctionResultCallback_0_2::base* -NewPermanentCallback(R (*function)(A1, A2)) { - return new _FunctionResultCallback_0_2(function); -} - -template ::value>::type> -class _ConstMemberResultCallback_1_2 : public ResultCallback2 { - public: - typedef ResultCallback2 base; - typedef R (T::*MemberSignature)(P1, A1, A2) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - - public: - inline _ConstMemberResultCallback_1_2(const T* object, MemberSignature member, - typename ConstRef::type p1) - : ResultCallback2(), - object_(object), - member_(member), - p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2"); - } - - virtual R Run(A1 a1, A2 a2) { - if (!del) { - R result = (object_->*member_)(p1_, a1, a2); - return result; - } else { - R result = (object_->*member_)(p1_, a1, a2); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_1_2< - del, void, T, P1, A1, A2, - typename c_enable_if::value>::type> - : public Callback2 { - public: - typedef Callback2 base; - typedef void (T::*MemberSignature)(P1, A1, A2) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - - public: - inline _ConstMemberResultCallback_1_2(const T* object, MemberSignature member, - typename ConstRef::type p1) - : Callback2(), object_(object), member_(member), p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback2"); - } - - virtual void Run(A1 a1, A2 a2) { - if (!del) { - (object_->*member_)(p1_, a1, a2); - } else { - (object_->*member_)(p1_, a1, a2); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_1_2::base* -NewCallback(const T1* obj, R (T2::*member)(P1, A1, A2) const, - typename ConstRef::type p1) { - return new _ConstMemberResultCallback_1_2( - obj, member, p1); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_1_2::base* -NewPermanentCallback(const T1* obj, R (T2::*member)(P1, A1, A2) const, - typename ConstRef::type p1) { - return new _ConstMemberResultCallback_1_2( - obj, member, p1); -} -#endif - -template ::value>::type> -class _MemberResultCallback_1_2 : public ResultCallback2 { - public: - typedef ResultCallback2 base; - typedef R (T::*MemberSignature)(P1, A1, A2); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - - public: - inline _MemberResultCallback_1_2(T* object, MemberSignature member, - typename ConstRef::type p1) - : ResultCallback2(), - object_(object), - member_(member), - p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2"); - } - - virtual R Run(A1 a1, A2 a2) { - if (!del) { - R result = (object_->*member_)(p1_, a1, a2); - return result; - } else { - R result = (object_->*member_)(p1_, a1, a2); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_1_2< - del, void, T, P1, A1, A2, - typename c_enable_if::value>::type> - : public Callback2 { - public: - typedef Callback2 base; - typedef void (T::*MemberSignature)(P1, A1, A2); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - - public: - inline _MemberResultCallback_1_2(T* object, MemberSignature member, - typename ConstRef::type p1) - : Callback2(), object_(object), member_(member), p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback2"); - } - - virtual void Run(A1 a1, A2 a2) { - if (!del) { - (object_->*member_)(p1_, a1, a2); - } else { - (object_->*member_)(p1_, a1, a2); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_1_2::base* -NewCallback(T1* obj, R (T2::*member)(P1, A1, A2), - typename ConstRef::type p1) { - return new _MemberResultCallback_1_2(obj, member, - p1); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_1_2::base* -NewPermanentCallback(T1* obj, R (T2::*member)(P1, A1, A2), - typename ConstRef::type p1) { - return new _MemberResultCallback_1_2(obj, member, - p1); -} -#endif - -template -class _FunctionResultCallback_1_2 : public ResultCallback2 { - public: - typedef ResultCallback2 base; - typedef R (*FunctionSignature)(P1, A1, A2); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - - public: - inline _FunctionResultCallback_1_2(FunctionSignature function, - typename ConstRef::type p1) - : ResultCallback2(), function_(function), p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2"); - } - - virtual R Run(A1 a1, A2 a2) { - if (!del) { - R result = (*function_)(p1_, a1, a2); - return result; - } else { - R result = (*function_)(p1_, a1, a2); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_1_2 - : public Callback2 { - public: - typedef Callback2 base; - typedef void (*FunctionSignature)(P1, A1, A2); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - - public: - inline _FunctionResultCallback_1_2(FunctionSignature function, - typename ConstRef::type p1) - : Callback2(), function_(function), p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback2"); - } - - virtual void Run(A1 a1, A2 a2) { - if (!del) { - (*function_)(p1_, a1, a2); - } else { - (*function_)(p1_, a1, a2); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_1_2::base* -NewCallback(R (*function)(P1, A1, A2), typename ConstRef::type p1) { - return new _FunctionResultCallback_1_2(function, p1); -} - -template -inline typename _FunctionResultCallback_1_2::base* -NewPermanentCallback(R (*function)(P1, A1, A2), - typename ConstRef::type p1) { - return new _FunctionResultCallback_1_2(function, p1); -} - -template ::value>::type> -class _ConstMemberResultCallback_2_2 : public ResultCallback2 { - public: - typedef ResultCallback2 base; - typedef R (T::*MemberSignature)(P1, P2, A1, A2) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _ConstMemberResultCallback_2_2(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2) - : ResultCallback2(), - object_(object), - member_(member), - p1_(p1), - p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2"); - } - - virtual R Run(A1 a1, A2 a2) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, a1, a2); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, a1, a2); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_2_2< - del, void, T, P1, P2, A1, A2, - typename c_enable_if::value>::type> - : public Callback2 { - public: - typedef Callback2 base; - typedef void (T::*MemberSignature)(P1, P2, A1, A2) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _ConstMemberResultCallback_2_2(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2) - : Callback2(), - object_(object), - member_(member), - p1_(p1), - p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback2"); - } - - virtual void Run(A1 a1, A2 a2) { - if (!del) { - (object_->*member_)(p1_, p2_, a1, a2); - } else { - (object_->*member_)(p1_, p2_, a1, a2); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline - typename _ConstMemberResultCallback_2_2::base* - NewCallback(const T1* obj, R (T2::*member)(P1, P2, A1, A2) const, - typename ConstRef::type p1, - typename ConstRef::type p2) { - return new _ConstMemberResultCallback_2_2( - obj, member, p1, p2); -} -#endif - -#ifndef SWIG -template -inline - typename _ConstMemberResultCallback_2_2::base* - NewPermanentCallback(const T1* obj, R (T2::*member)(P1, P2, A1, A2) const, - typename ConstRef::type p1, - typename ConstRef::type p2) { - return new _ConstMemberResultCallback_2_2( - obj, member, p1, p2); -} -#endif - -template ::value>::type> -class _MemberResultCallback_2_2 : public ResultCallback2 { - public: - typedef ResultCallback2 base; - typedef R (T::*MemberSignature)(P1, P2, A1, A2); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _MemberResultCallback_2_2(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2) - : ResultCallback2(), - object_(object), - member_(member), - p1_(p1), - p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2"); - } - - virtual R Run(A1 a1, A2 a2) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, a1, a2); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, a1, a2); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_2_2< - del, void, T, P1, P2, A1, A2, - typename c_enable_if::value>::type> - : public Callback2 { - public: - typedef Callback2 base; - typedef void (T::*MemberSignature)(P1, P2, A1, A2); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _MemberResultCallback_2_2(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2) - : Callback2(), - object_(object), - member_(member), - p1_(p1), - p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback2"); - } - - virtual void Run(A1 a1, A2 a2) { - if (!del) { - (object_->*member_)(p1_, p2_, a1, a2); - } else { - (object_->*member_)(p1_, p2_, a1, a2); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_2_2::base* -NewCallback(T1* obj, R (T2::*member)(P1, P2, A1, A2), - typename ConstRef::type p1, typename ConstRef::type p2) { - return new _MemberResultCallback_2_2(obj, member, - p1, p2); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_2_2::base* -NewPermanentCallback(T1* obj, R (T2::*member)(P1, P2, A1, A2), - typename ConstRef::type p1, - typename ConstRef::type p2) { - return new _MemberResultCallback_2_2( - obj, member, p1, p2); -} -#endif - -template -class _FunctionResultCallback_2_2 : public ResultCallback2 { - public: - typedef ResultCallback2 base; - typedef R (*FunctionSignature)(P1, P2, A1, A2); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _FunctionResultCallback_2_2(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2) - : ResultCallback2(), function_(function), p1_(p1), p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2"); - } - - virtual R Run(A1 a1, A2 a2) { - if (!del) { - R result = (*function_)(p1_, p2_, a1, a2); - return result; - } else { - R result = (*function_)(p1_, p2_, a1, a2); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_2_2 - : public Callback2 { - public: - typedef Callback2 base; - typedef void (*FunctionSignature)(P1, P2, A1, A2); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _FunctionResultCallback_2_2(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2) - : Callback2(), function_(function), p1_(p1), p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback2"); - } - - virtual void Run(A1 a1, A2 a2) { - if (!del) { - (*function_)(p1_, p2_, a1, a2); - } else { - (*function_)(p1_, p2_, a1, a2); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_2_2::base* -NewCallback(R (*function)(P1, P2, A1, A2), typename ConstRef::type p1, - typename ConstRef::type p2) { - return new _FunctionResultCallback_2_2(function, p1, - p2); -} - -template -inline typename _FunctionResultCallback_2_2::base* -NewPermanentCallback(R (*function)(P1, P2, A1, A2), - typename ConstRef::type p1, - typename ConstRef::type p2) { - return new _FunctionResultCallback_2_2(function, p1, - p2); -} - -template ::value>::type> -class _ConstMemberResultCallback_3_2 : public ResultCallback2 { - public: - typedef ResultCallback2 base; - typedef R (T::*MemberSignature)(P1, P2, P3, A1, A2) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _ConstMemberResultCallback_3_2(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : ResultCallback2(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2"); - } - - virtual R Run(A1 a1, A2 a2) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, a1, a2); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, a1, a2); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_3_2< - del, void, T, P1, P2, P3, A1, A2, - typename c_enable_if::value>::type> - : public Callback2 { - public: - typedef Callback2 base; - typedef void (T::*MemberSignature)(P1, P2, P3, A1, A2) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _ConstMemberResultCallback_3_2(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : Callback2(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback2"); - } - - virtual void Run(A1 a1, A2 a2) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, a1, a2); - } else { - (object_->*member_)(p1_, p2_, p3_, a1, a2); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_3_2::base* -NewCallback(const T1* obj, R (T2::*member)(P1, P2, P3, A1, A2) const, - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _ConstMemberResultCallback_3_2( - obj, member, p1, p2, p3); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_3_2::base* -NewPermanentCallback(const T1* obj, R (T2::*member)(P1, P2, P3, A1, A2) const, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _ConstMemberResultCallback_3_2( - obj, member, p1, p2, p3); -} -#endif - -template ::value>::type> -class _MemberResultCallback_3_2 : public ResultCallback2 { - public: - typedef ResultCallback2 base; - typedef R (T::*MemberSignature)(P1, P2, P3, A1, A2); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _MemberResultCallback_3_2(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : ResultCallback2(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2"); - } - - virtual R Run(A1 a1, A2 a2) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, a1, a2); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, a1, a2); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_3_2< - del, void, T, P1, P2, P3, A1, A2, - typename c_enable_if::value>::type> - : public Callback2 { - public: - typedef Callback2 base; - typedef void (T::*MemberSignature)(P1, P2, P3, A1, A2); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _MemberResultCallback_3_2(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : Callback2(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback2"); - } - - virtual void Run(A1 a1, A2 a2) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, a1, a2); - } else { - (object_->*member_)(p1_, p2_, p3_, a1, a2); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline - typename _MemberResultCallback_3_2::base* - NewCallback(T1* obj, R (T2::*member)(P1, P2, P3, A1, A2), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _MemberResultCallback_3_2( - obj, member, p1, p2, p3); -} -#endif - -#ifndef SWIG -template -inline - typename _MemberResultCallback_3_2::base* - NewPermanentCallback(T1* obj, R (T2::*member)(P1, P2, P3, A1, A2), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _MemberResultCallback_3_2( - obj, member, p1, p2, p3); -} -#endif - -template -class _FunctionResultCallback_3_2 : public ResultCallback2 { - public: - typedef ResultCallback2 base; - typedef R (*FunctionSignature)(P1, P2, P3, A1, A2); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _FunctionResultCallback_3_2(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : ResultCallback2(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2"); - } - - virtual R Run(A1 a1, A2 a2) { - if (!del) { - R result = (*function_)(p1_, p2_, p3_, a1, a2); - return result; - } else { - R result = (*function_)(p1_, p2_, p3_, a1, a2); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_3_2 - : public Callback2 { - public: - typedef Callback2 base; - typedef void (*FunctionSignature)(P1, P2, P3, A1, A2); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _FunctionResultCallback_3_2(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : Callback2(), function_(function), p1_(p1), p2_(p2), p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback2"); - } - - virtual void Run(A1 a1, A2 a2) { - if (!del) { - (*function_)(p1_, p2_, p3_, a1, a2); - } else { - (*function_)(p1_, p2_, p3_, a1, a2); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_3_2::base* -NewCallback(R (*function)(P1, P2, P3, A1, A2), typename ConstRef::type p1, - typename ConstRef::type p2, typename ConstRef::type p3) { - return new _FunctionResultCallback_3_2( - function, p1, p2, p3); -} - -template -inline typename _FunctionResultCallback_3_2::base* -NewPermanentCallback(R (*function)(P1, P2, P3, A1, A2), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _FunctionResultCallback_3_2( - function, p1, p2, p3); -} - -template ::value>::type> -class _ConstMemberResultCallback_4_2 : public ResultCallback2 { - public: - typedef ResultCallback2 base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, A1, A2) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _ConstMemberResultCallback_4_2(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : ResultCallback2(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2"); - } - - virtual R Run(A1 a1, A2 a2) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_4_2< - del, void, T, P1, P2, P3, P4, A1, A2, - typename c_enable_if::value>::type> - : public Callback2 { - public: - typedef Callback2 base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, A1, A2) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _ConstMemberResultCallback_4_2(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : Callback2(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback2"); - } - - virtual void Run(A1 a1, A2 a2) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_4_2::base* -NewCallback(const T1* obj, R (T2::*member)(P1, P2, P3, P4, A1, A2) const, - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4) { - return new _ConstMemberResultCallback_4_2(obj, member, p1, p2, p3, p4); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_4_2::base* -NewPermanentCallback(const T1* obj, - R (T2::*member)(P1, P2, P3, P4, A1, A2) const, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) { - return new _ConstMemberResultCallback_4_2(obj, member, p1, p2, p3, p4); -} -#endif - -template ::value>::type> -class _MemberResultCallback_4_2 : public ResultCallback2 { - public: - typedef ResultCallback2 base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, A1, A2); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _MemberResultCallback_4_2(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : ResultCallback2(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2"); - } - - virtual R Run(A1 a1, A2 a2) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_4_2< - del, void, T, P1, P2, P3, P4, A1, A2, - typename c_enable_if::value>::type> - : public Callback2 { - public: - typedef Callback2 base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, A1, A2); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _MemberResultCallback_4_2(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : Callback2(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback2"); - } - - virtual void Run(A1 a1, A2 a2) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_4_2::base* -NewCallback(T1* obj, R (T2::*member)(P1, P2, P3, P4, A1, A2), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4) { - return new _MemberResultCallback_4_2( - obj, member, p1, p2, p3, p4); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_4_2::base* -NewPermanentCallback(T1* obj, R (T2::*member)(P1, P2, P3, P4, A1, A2), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) { - return new _MemberResultCallback_4_2( - obj, member, p1, p2, p3, p4); -} -#endif - -template -class _FunctionResultCallback_4_2 : public ResultCallback2 { - public: - typedef ResultCallback2 base; - typedef R (*FunctionSignature)(P1, P2, P3, P4, A1, A2); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _FunctionResultCallback_4_2(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : ResultCallback2(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2"); - } - - virtual R Run(A1 a1, A2 a2) { - if (!del) { - R result = (*function_)(p1_, p2_, p3_, p4_, a1, a2); - return result; - } else { - R result = (*function_)(p1_, p2_, p3_, p4_, a1, a2); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_4_2 - : public Callback2 { - public: - typedef Callback2 base; - typedef void (*FunctionSignature)(P1, P2, P3, P4, A1, A2); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _FunctionResultCallback_4_2(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : Callback2(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback2"); - } - - virtual void Run(A1 a1, A2 a2) { - if (!del) { - (*function_)(p1_, p2_, p3_, p4_, a1, a2); - } else { - (*function_)(p1_, p2_, p3_, p4_, a1, a2); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline - typename _FunctionResultCallback_4_2::base* - NewCallback(R (*function)(P1, P2, P3, P4, A1, A2), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) { - return new _FunctionResultCallback_4_2( - function, p1, p2, p3, p4); -} - -template -inline typename _FunctionResultCallback_4_2::base* -NewPermanentCallback(R (*function)(P1, P2, P3, P4, A1, A2), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) { - return new _FunctionResultCallback_4_2( - function, p1, p2, p3, p4); -} - -template ::value>::type> -class _ConstMemberResultCallback_5_2 : public ResultCallback2 { - public: - typedef ResultCallback2 base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, P5, A1, A2) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _ConstMemberResultCallback_5_2(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : ResultCallback2(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2"); - } - - virtual R Run(A1 a1, A2 a2) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_5_2< - del, void, T, P1, P2, P3, P4, P5, A1, A2, - typename c_enable_if::value>::type> - : public Callback2 { - public: - typedef Callback2 base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, P5, A1, A2) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _ConstMemberResultCallback_5_2(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : Callback2(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback2"); - } - - virtual void Run(A1 a1, A2 a2) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_5_2::base* -NewCallback(const T1* obj, R (T2::*member)(P1, P2, P3, P4, P5, A1, A2) const, - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _ConstMemberResultCallback_5_2(obj, member, p1, p2, p3, p4, - p5); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_5_2::base* -NewPermanentCallback(const T1* obj, - R (T2::*member)(P1, P2, P3, P4, P5, A1, A2) const, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _ConstMemberResultCallback_5_2(obj, member, p1, p2, p3, p4, - p5); -} -#endif - -template ::value>::type> -class _MemberResultCallback_5_2 : public ResultCallback2 { - public: - typedef ResultCallback2 base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, P5, A1, A2); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _MemberResultCallback_5_2(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : ResultCallback2(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2"); - } - - virtual R Run(A1 a1, A2 a2) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_5_2< - del, void, T, P1, P2, P3, P4, P5, A1, A2, - typename c_enable_if::value>::type> - : public Callback2 { - public: - typedef Callback2 base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, P5, A1, A2); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _MemberResultCallback_5_2(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : Callback2(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback2"); - } - - virtual void Run(A1 a1, A2 a2) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_5_2::base* -NewCallback(T1* obj, R (T2::*member)(P1, P2, P3, P4, P5, A1, A2), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _MemberResultCallback_5_2( - obj, member, p1, p2, p3, p4, p5); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_5_2::base* -NewPermanentCallback(T1* obj, R (T2::*member)(P1, P2, P3, P4, P5, A1, A2), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _MemberResultCallback_5_2(obj, member, p1, p2, p3, p4, p5); -} -#endif - -template -class _FunctionResultCallback_5_2 : public ResultCallback2 { - public: - typedef ResultCallback2 base; - typedef R (*FunctionSignature)(P1, P2, P3, P4, P5, A1, A2); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _FunctionResultCallback_5_2(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : ResultCallback2(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2"); - } - - virtual R Run(A1 a1, A2 a2) { - if (!del) { - R result = (*function_)(p1_, p2_, p3_, p4_, p5_, a1, a2); - return result; - } else { - R result = (*function_)(p1_, p2_, p3_, p4_, p5_, a1, a2); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_5_2 - : public Callback2 { - public: - typedef Callback2 base; - typedef void (*FunctionSignature)(P1, P2, P3, P4, P5, A1, A2); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _FunctionResultCallback_5_2(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : Callback2(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback2"); - } - - virtual void Run(A1 a1, A2 a2) { - if (!del) { - (*function_)(p1_, p2_, p3_, p4_, p5_, a1, a2); - } else { - (*function_)(p1_, p2_, p3_, p4_, p5_, a1, a2); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_5_2::base* -NewCallback(R (*function)(P1, P2, P3, P4, P5, A1, A2), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _FunctionResultCallback_5_2( - function, p1, p2, p3, p4, p5); -} - -template -inline typename _FunctionResultCallback_5_2::base* -NewPermanentCallback(R (*function)(P1, P2, P3, P4, P5, A1, A2), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _FunctionResultCallback_5_2( - function, p1, p2, p3, p4, p5); -} - -template ::value>::type> -class _ConstMemberResultCallback_6_2 : public ResultCallback2 { - public: - typedef ResultCallback2 base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, P5, P6, A1, A2) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _ConstMemberResultCallback_6_2(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : ResultCallback2(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2"); - } - - virtual R Run(A1 a1, A2 a2) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_6_2< - del, void, T, P1, P2, P3, P4, P5, P6, A1, A2, - typename c_enable_if::value>::type> - : public Callback2 { - public: - typedef Callback2 base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, P5, P6, A1, A2) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _ConstMemberResultCallback_6_2(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : Callback2(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback2"); - } - - virtual void Run(A1 a1, A2 a2) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_6_2::base* -NewCallback(const T1* obj, - R (T2::*member)(P1, P2, P3, P4, P5, P6, A1, A2) const, - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5, typename ConstRef::type p6) { - return new _ConstMemberResultCallback_6_2(obj, member, p1, p2, p3, p4, - p5, p6); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_6_2::base* -NewPermanentCallback( - const T1* obj, R (T2::*member)(P1, P2, P3, P4, P5, P6, A1, A2) const, - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5, typename ConstRef::type p6) { - return new _ConstMemberResultCallback_6_2(obj, member, p1, p2, p3, - p4, p5, p6); -} -#endif - -template ::value>::type> -class _MemberResultCallback_6_2 : public ResultCallback2 { - public: - typedef ResultCallback2 base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, P5, P6, A1, A2); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _MemberResultCallback_6_2(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : ResultCallback2(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2"); - } - - virtual R Run(A1 a1, A2 a2) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_6_2< - del, void, T, P1, P2, P3, P4, P5, P6, A1, A2, - typename c_enable_if::value>::type> - : public Callback2 { - public: - typedef Callback2 base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, P5, P6, A1, A2); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _MemberResultCallback_6_2(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : Callback2(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback2"); - } - - virtual void Run(A1 a1, A2 a2) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_6_2::base* -NewCallback(T1* obj, R (T2::*member)(P1, P2, P3, P4, P5, P6, A1, A2), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5, typename ConstRef::type p6) { - return new _MemberResultCallback_6_2(obj, member, p1, p2, p3, p4, p5, p6); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_6_2::base* -NewPermanentCallback(T1* obj, R (T2::*member)(P1, P2, P3, P4, P5, P6, A1, A2), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) { - return new _MemberResultCallback_6_2(obj, member, p1, p2, p3, p4, p5, p6); -} -#endif - -template -class _FunctionResultCallback_6_2 : public ResultCallback2 { - public: - typedef ResultCallback2 base; - typedef R (*FunctionSignature)(P1, P2, P3, P4, P5, P6, A1, A2); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _FunctionResultCallback_6_2(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : ResultCallback2(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2"); - } - - virtual R Run(A1 a1, A2 a2) { - if (!del) { - R result = (*function_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2); - return result; - } else { - R result = (*function_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_6_2 - : public Callback2 { - public: - typedef Callback2 base; - typedef void (*FunctionSignature)(P1, P2, P3, P4, P5, P6, A1, A2); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _FunctionResultCallback_6_2(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : Callback2(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback2"); - } - - virtual void Run(A1 a1, A2 a2) { - if (!del) { - (*function_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2); - } else { - (*function_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_6_2::base* -NewCallback(R (*function)(P1, P2, P3, P4, P5, P6, A1, A2), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5, typename ConstRef::type p6) { - return new _FunctionResultCallback_6_2(function, p1, p2, p3, p4, p5, p6); -} - -template -inline typename _FunctionResultCallback_6_2::base* -NewPermanentCallback(R (*function)(P1, P2, P3, P4, P5, P6, A1, A2), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) { - return new _FunctionResultCallback_6_2(function, p1, p2, p3, p4, p5, p6); -} - -template ::value>::type> -class _ConstMemberResultCallback_0_3 : public ResultCallback3 { - public: - typedef ResultCallback3 base; - typedef R (T::*MemberSignature)(A1, A2, A3) const; - - private: - const T* object_; - MemberSignature member_; - - public: - inline _ConstMemberResultCallback_0_3(const T* object, MemberSignature member) - : ResultCallback3(), object_(object), member_(member) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - R result = (object_->*member_)(a1, a2, a3); - return result; - } else { - R result = (object_->*member_)(a1, a2, a3); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_0_3< - del, void, T, A1, A2, A3, - typename c_enable_if::value>::type> - : public Callback3 { - public: - typedef Callback3 base; - typedef void (T::*MemberSignature)(A1, A2, A3) const; - - private: - const T* object_; - MemberSignature member_; - - public: - inline _ConstMemberResultCallback_0_3(const T* object, MemberSignature member) - : Callback3(), object_(object), member_(member) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback3"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - (object_->*member_)(a1, a2, a3); - } else { - (object_->*member_)(a1, a2, a3); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_0_3::base* -NewCallback(const T1* obj, R (T2::*member)(A1, A2, A3) const) { - return new _ConstMemberResultCallback_0_3(obj, - member); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_0_3::base* -NewPermanentCallback(const T1* obj, R (T2::*member)(A1, A2, A3) const) { - return new _ConstMemberResultCallback_0_3(obj, - member); -} -#endif - -template ::value>::type> -class _MemberResultCallback_0_3 : public ResultCallback3 { - public: - typedef ResultCallback3 base; - typedef R (T::*MemberSignature)(A1, A2, A3); - - private: - T* object_; - MemberSignature member_; - - public: - inline _MemberResultCallback_0_3(T* object, MemberSignature member) - : ResultCallback3(), object_(object), member_(member) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - R result = (object_->*member_)(a1, a2, a3); - return result; - } else { - R result = (object_->*member_)(a1, a2, a3); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_0_3< - del, void, T, A1, A2, A3, - typename c_enable_if::value>::type> - : public Callback3 { - public: - typedef Callback3 base; - typedef void (T::*MemberSignature)(A1, A2, A3); - - private: - T* object_; - MemberSignature member_; - - public: - inline _MemberResultCallback_0_3(T* object, MemberSignature member) - : Callback3(), object_(object), member_(member) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback3"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - (object_->*member_)(a1, a2, a3); - } else { - (object_->*member_)(a1, a2, a3); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_0_3::base* -NewCallback(T1* obj, R (T2::*member)(A1, A2, A3)) { - return new _MemberResultCallback_0_3(obj, member); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_0_3::base* -NewPermanentCallback(T1* obj, R (T2::*member)(A1, A2, A3)) { - return new _MemberResultCallback_0_3(obj, member); -} -#endif - -template -class _FunctionResultCallback_0_3 : public ResultCallback3 { - public: - typedef ResultCallback3 base; - typedef R (*FunctionSignature)(A1, A2, A3); - - private: - FunctionSignature function_; - - public: - explicit inline _FunctionResultCallback_0_3(FunctionSignature function) - : ResultCallback3(), function_(function) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - R result = (*function_)(a1, a2, a3); - return result; - } else { - R result = (*function_)(a1, a2, a3); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_0_3 - : public Callback3 { - public: - typedef Callback3 base; - typedef void (*FunctionSignature)(A1, A2, A3); - - private: - FunctionSignature function_; - - public: - explicit inline _FunctionResultCallback_0_3(FunctionSignature function) - : Callback3(), function_(function) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback3"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - (*function_)(a1, a2, a3); - } else { - (*function_)(a1, a2, a3); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_0_3::base* -NewCallback(R (*function)(A1, A2, A3)) { - return new _FunctionResultCallback_0_3(function); -} - -template -inline typename _FunctionResultCallback_0_3::base* -NewPermanentCallback(R (*function)(A1, A2, A3)) { - return new _FunctionResultCallback_0_3(function); -} - -template ::value>::type> -class _ConstMemberResultCallback_1_3 : public ResultCallback3 { - public: - typedef ResultCallback3 base; - typedef R (T::*MemberSignature)(P1, A1, A2, A3) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - - public: - inline _ConstMemberResultCallback_1_3(const T* object, MemberSignature member, - typename ConstRef::type p1) - : ResultCallback3(), - object_(object), - member_(member), - p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - R result = (object_->*member_)(p1_, a1, a2, a3); - return result; - } else { - R result = (object_->*member_)(p1_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_1_3< - del, void, T, P1, A1, A2, A3, - typename c_enable_if::value>::type> - : public Callback3 { - public: - typedef Callback3 base; - typedef void (T::*MemberSignature)(P1, A1, A2, A3) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - - public: - inline _ConstMemberResultCallback_1_3(const T* object, MemberSignature member, - typename ConstRef::type p1) - : Callback3(), object_(object), member_(member), p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback3"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - (object_->*member_)(p1_, a1, a2, a3); - } else { - (object_->*member_)(p1_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline - typename _ConstMemberResultCallback_1_3::base* - NewCallback(const T1* obj, R (T2::*member)(P1, A1, A2, A3) const, - typename ConstRef::type p1) { - return new _ConstMemberResultCallback_1_3( - obj, member, p1); -} -#endif - -#ifndef SWIG -template -inline - typename _ConstMemberResultCallback_1_3::base* - NewPermanentCallback(const T1* obj, R (T2::*member)(P1, A1, A2, A3) const, - typename ConstRef::type p1) { - return new _ConstMemberResultCallback_1_3( - obj, member, p1); -} -#endif - -template ::value>::type> -class _MemberResultCallback_1_3 : public ResultCallback3 { - public: - typedef ResultCallback3 base; - typedef R (T::*MemberSignature)(P1, A1, A2, A3); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - - public: - inline _MemberResultCallback_1_3(T* object, MemberSignature member, - typename ConstRef::type p1) - : ResultCallback3(), - object_(object), - member_(member), - p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - R result = (object_->*member_)(p1_, a1, a2, a3); - return result; - } else { - R result = (object_->*member_)(p1_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_1_3< - del, void, T, P1, A1, A2, A3, - typename c_enable_if::value>::type> - : public Callback3 { - public: - typedef Callback3 base; - typedef void (T::*MemberSignature)(P1, A1, A2, A3); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - - public: - inline _MemberResultCallback_1_3(T* object, MemberSignature member, - typename ConstRef::type p1) - : Callback3(), object_(object), member_(member), p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback3"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - (object_->*member_)(p1_, a1, a2, a3); - } else { - (object_->*member_)(p1_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_1_3::base* -NewCallback(T1* obj, R (T2::*member)(P1, A1, A2, A3), - typename ConstRef::type p1) { - return new _MemberResultCallback_1_3(obj, member, - p1); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_1_3::base* -NewPermanentCallback(T1* obj, R (T2::*member)(P1, A1, A2, A3), - typename ConstRef::type p1) { - return new _MemberResultCallback_1_3( - obj, member, p1); -} -#endif - -template -class _FunctionResultCallback_1_3 : public ResultCallback3 { - public: - typedef ResultCallback3 base; - typedef R (*FunctionSignature)(P1, A1, A2, A3); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - - public: - inline _FunctionResultCallback_1_3(FunctionSignature function, - typename ConstRef::type p1) - : ResultCallback3(), function_(function), p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - R result = (*function_)(p1_, a1, a2, a3); - return result; - } else { - R result = (*function_)(p1_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_1_3 - : public Callback3 { - public: - typedef Callback3 base; - typedef void (*FunctionSignature)(P1, A1, A2, A3); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - - public: - inline _FunctionResultCallback_1_3(FunctionSignature function, - typename ConstRef::type p1) - : Callback3(), function_(function), p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback3"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - (*function_)(p1_, a1, a2, a3); - } else { - (*function_)(p1_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_1_3::base* -NewCallback(R (*function)(P1, A1, A2, A3), typename ConstRef::type p1) { - return new _FunctionResultCallback_1_3(function, p1); -} - -template -inline typename _FunctionResultCallback_1_3::base* -NewPermanentCallback(R (*function)(P1, A1, A2, A3), - typename ConstRef::type p1) { - return new _FunctionResultCallback_1_3(function, - p1); -} - -template ::value>::type> -class _ConstMemberResultCallback_2_3 : public ResultCallback3 { - public: - typedef ResultCallback3 base; - typedef R (T::*MemberSignature)(P1, P2, A1, A2, A3) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _ConstMemberResultCallback_2_3(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2) - : ResultCallback3(), - object_(object), - member_(member), - p1_(p1), - p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, a1, a2, a3); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_2_3< - del, void, T, P1, P2, A1, A2, A3, - typename c_enable_if::value>::type> - : public Callback3 { - public: - typedef Callback3 base; - typedef void (T::*MemberSignature)(P1, P2, A1, A2, A3) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _ConstMemberResultCallback_2_3(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2) - : Callback3(), - object_(object), - member_(member), - p1_(p1), - p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback3"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - (object_->*member_)(p1_, p2_, a1, a2, a3); - } else { - (object_->*member_)(p1_, p2_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_2_3::base* -NewCallback(const T1* obj, R (T2::*member)(P1, P2, A1, A2, A3) const, - typename ConstRef::type p1, typename ConstRef::type p2) { - return new _ConstMemberResultCallback_2_3( - obj, member, p1, p2); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_2_3::base* -NewPermanentCallback(const T1* obj, R (T2::*member)(P1, P2, A1, A2, A3) const, - typename ConstRef::type p1, - typename ConstRef::type p2) { - return new _ConstMemberResultCallback_2_3( - obj, member, p1, p2); -} -#endif - -template ::value>::type> -class _MemberResultCallback_2_3 : public ResultCallback3 { - public: - typedef ResultCallback3 base; - typedef R (T::*MemberSignature)(P1, P2, A1, A2, A3); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _MemberResultCallback_2_3(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2) - : ResultCallback3(), - object_(object), - member_(member), - p1_(p1), - p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, a1, a2, a3); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_2_3< - del, void, T, P1, P2, A1, A2, A3, - typename c_enable_if::value>::type> - : public Callback3 { - public: - typedef Callback3 base; - typedef void (T::*MemberSignature)(P1, P2, A1, A2, A3); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _MemberResultCallback_2_3(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2) - : Callback3(), - object_(object), - member_(member), - p1_(p1), - p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback3"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - (object_->*member_)(p1_, p2_, a1, a2, a3); - } else { - (object_->*member_)(p1_, p2_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline - typename _MemberResultCallback_2_3::base* - NewCallback(T1* obj, R (T2::*member)(P1, P2, A1, A2, A3), - typename ConstRef::type p1, - typename ConstRef::type p2) { - return new _MemberResultCallback_2_3( - obj, member, p1, p2); -} -#endif - -#ifndef SWIG -template -inline - typename _MemberResultCallback_2_3::base* - NewPermanentCallback(T1* obj, R (T2::*member)(P1, P2, A1, A2, A3), - typename ConstRef::type p1, - typename ConstRef::type p2) { - return new _MemberResultCallback_2_3( - obj, member, p1, p2); -} -#endif - -template -class _FunctionResultCallback_2_3 : public ResultCallback3 { - public: - typedef ResultCallback3 base; - typedef R (*FunctionSignature)(P1, P2, A1, A2, A3); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _FunctionResultCallback_2_3(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2) - : ResultCallback3(), - function_(function), - p1_(p1), - p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - R result = (*function_)(p1_, p2_, a1, a2, a3); - return result; - } else { - R result = (*function_)(p1_, p2_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_2_3 - : public Callback3 { - public: - typedef Callback3 base; - typedef void (*FunctionSignature)(P1, P2, A1, A2, A3); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _FunctionResultCallback_2_3(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2) - : Callback3(), function_(function), p1_(p1), p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback3"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - (*function_)(p1_, p2_, a1, a2, a3); - } else { - (*function_)(p1_, p2_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_2_3::base* -NewCallback(R (*function)(P1, P2, A1, A2, A3), typename ConstRef::type p1, - typename ConstRef::type p2) { - return new _FunctionResultCallback_2_3(function, - p1, p2); -} - -template -inline typename _FunctionResultCallback_2_3::base* -NewPermanentCallback(R (*function)(P1, P2, A1, A2, A3), - typename ConstRef::type p1, - typename ConstRef::type p2) { - return new _FunctionResultCallback_2_3(function, - p1, p2); -} - -template ::value>::type> -class _ConstMemberResultCallback_3_3 : public ResultCallback3 { - public: - typedef ResultCallback3 base; - typedef R (T::*MemberSignature)(P1, P2, P3, A1, A2, A3) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _ConstMemberResultCallback_3_3(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : ResultCallback3(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, a1, a2, a3); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_3_3< - del, void, T, P1, P2, P3, A1, A2, A3, - typename c_enable_if::value>::type> - : public Callback3 { - public: - typedef Callback3 base; - typedef void (T::*MemberSignature)(P1, P2, P3, A1, A2, A3) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _ConstMemberResultCallback_3_3(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : Callback3(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback3"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, a1, a2, a3); - } else { - (object_->*member_)(p1_, p2_, p3_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_3_3::base* -NewCallback(const T1* obj, R (T2::*member)(P1, P2, P3, A1, A2, A3) const, - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _ConstMemberResultCallback_3_3(obj, member, p1, p2, p3); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_3_3::base* -NewPermanentCallback(const T1* obj, - R (T2::*member)(P1, P2, P3, A1, A2, A3) const, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _ConstMemberResultCallback_3_3(obj, member, p1, p2, p3); -} -#endif - -template ::value>::type> -class _MemberResultCallback_3_3 : public ResultCallback3 { - public: - typedef ResultCallback3 base; - typedef R (T::*MemberSignature)(P1, P2, P3, A1, A2, A3); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _MemberResultCallback_3_3(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : ResultCallback3(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, a1, a2, a3); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_3_3< - del, void, T, P1, P2, P3, A1, A2, A3, - typename c_enable_if::value>::type> - : public Callback3 { - public: - typedef Callback3 base; - typedef void (T::*MemberSignature)(P1, P2, P3, A1, A2, A3); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _MemberResultCallback_3_3(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : Callback3(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback3"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, a1, a2, a3); - } else { - (object_->*member_)(p1_, p2_, p3_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_3_3::base* -NewCallback(T1* obj, R (T2::*member)(P1, P2, P3, A1, A2, A3), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _MemberResultCallback_3_3( - obj, member, p1, p2, p3); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_3_3::base* -NewPermanentCallback(T1* obj, R (T2::*member)(P1, P2, P3, A1, A2, A3), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _MemberResultCallback_3_3( - obj, member, p1, p2, p3); -} -#endif - -template -class _FunctionResultCallback_3_3 : public ResultCallback3 { - public: - typedef ResultCallback3 base; - typedef R (*FunctionSignature)(P1, P2, P3, A1, A2, A3); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _FunctionResultCallback_3_3(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : ResultCallback3(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - R result = (*function_)(p1_, p2_, p3_, a1, a2, a3); - return result; - } else { - R result = (*function_)(p1_, p2_, p3_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_3_3 - : public Callback3 { - public: - typedef Callback3 base; - typedef void (*FunctionSignature)(P1, P2, P3, A1, A2, A3); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _FunctionResultCallback_3_3(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : Callback3(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback3"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - (*function_)(p1_, p2_, p3_, a1, a2, a3); - } else { - (*function_)(p1_, p2_, p3_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline - typename _FunctionResultCallback_3_3::base* - NewCallback(R (*function)(P1, P2, P3, A1, A2, A3), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _FunctionResultCallback_3_3( - function, p1, p2, p3); -} - -template -inline typename _FunctionResultCallback_3_3::base* -NewPermanentCallback(R (*function)(P1, P2, P3, A1, A2, A3), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _FunctionResultCallback_3_3( - function, p1, p2, p3); -} - -template ::value>::type> -class _ConstMemberResultCallback_4_3 : public ResultCallback3 { - public: - typedef ResultCallback3 base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, A1, A2, A3) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _ConstMemberResultCallback_4_3(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : ResultCallback3(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2, a3); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_4_3< - del, void, T, P1, P2, P3, P4, A1, A2, A3, - typename c_enable_if::value>::type> - : public Callback3 { - public: - typedef Callback3 base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, A1, A2, A3) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _ConstMemberResultCallback_4_3(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : Callback3(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback3"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2, a3); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_4_3::base* -NewCallback(const T1* obj, R (T2::*member)(P1, P2, P3, P4, A1, A2, A3) const, - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4) { - return new _ConstMemberResultCallback_4_3(obj, member, p1, p2, p3, p4); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_4_3::base* -NewPermanentCallback(const T1* obj, - R (T2::*member)(P1, P2, P3, P4, A1, A2, A3) const, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) { - return new _ConstMemberResultCallback_4_3(obj, member, p1, p2, p3, - p4); -} -#endif - -template ::value>::type> -class _MemberResultCallback_4_3 : public ResultCallback3 { - public: - typedef ResultCallback3 base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, A1, A2, A3); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _MemberResultCallback_4_3(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : ResultCallback3(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2, a3); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_4_3< - del, void, T, P1, P2, P3, P4, A1, A2, A3, - typename c_enable_if::value>::type> - : public Callback3 { - public: - typedef Callback3 base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, A1, A2, A3); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _MemberResultCallback_4_3(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : Callback3(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback3"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2, a3); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_4_3::base* -NewCallback(T1* obj, R (T2::*member)(P1, P2, P3, P4, A1, A2, A3), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4) { - return new _MemberResultCallback_4_3( - obj, member, p1, p2, p3, p4); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_4_3::base* -NewPermanentCallback(T1* obj, R (T2::*member)(P1, P2, P3, P4, A1, A2, A3), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) { - return new _MemberResultCallback_4_3(obj, member, p1, p2, p3, p4); -} -#endif - -template -class _FunctionResultCallback_4_3 : public ResultCallback3 { - public: - typedef ResultCallback3 base; - typedef R (*FunctionSignature)(P1, P2, P3, P4, A1, A2, A3); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _FunctionResultCallback_4_3(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : ResultCallback3(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - R result = (*function_)(p1_, p2_, p3_, p4_, a1, a2, a3); - return result; - } else { - R result = (*function_)(p1_, p2_, p3_, p4_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_4_3 - : public Callback3 { - public: - typedef Callback3 base; - typedef void (*FunctionSignature)(P1, P2, P3, P4, A1, A2, A3); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _FunctionResultCallback_4_3(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : Callback3(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback3"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - (*function_)(p1_, p2_, p3_, p4_, a1, a2, a3); - } else { - (*function_)(p1_, p2_, p3_, p4_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_4_3::base* -NewCallback(R (*function)(P1, P2, P3, P4, A1, A2, A3), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4) { - return new _FunctionResultCallback_4_3( - function, p1, p2, p3, p4); -} - -template -inline typename _FunctionResultCallback_4_3::base* -NewPermanentCallback(R (*function)(P1, P2, P3, P4, A1, A2, A3), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) { - return new _FunctionResultCallback_4_3( - function, p1, p2, p3, p4); -} - -template ::value>::type> -class _ConstMemberResultCallback_5_3 : public ResultCallback3 { - public: - typedef ResultCallback3 base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, P5, A1, A2, A3) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _ConstMemberResultCallback_5_3(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : ResultCallback3(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_5_3< - del, void, T, P1, P2, P3, P4, P5, A1, A2, A3, - typename c_enable_if::value>::type> - : public Callback3 { - public: - typedef Callback3 base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, P5, A1, A2, A3) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _ConstMemberResultCallback_5_3(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : Callback3(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback3"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_5_3::base* -NewCallback(const T1* obj, - R (T2::*member)(P1, P2, P3, P4, P5, A1, A2, A3) const, - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _ConstMemberResultCallback_5_3(obj, member, p1, p2, p3, p4, - p5); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_5_3::base* -NewPermanentCallback(const T1* obj, - R (T2::*member)(P1, P2, P3, P4, P5, A1, A2, A3) const, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _ConstMemberResultCallback_5_3(obj, member, p1, p2, p3, - p4, p5); -} -#endif - -template ::value>::type> -class _MemberResultCallback_5_3 : public ResultCallback3 { - public: - typedef ResultCallback3 base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, P5, A1, A2, A3); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _MemberResultCallback_5_3(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : ResultCallback3(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_5_3< - del, void, T, P1, P2, P3, P4, P5, A1, A2, A3, - typename c_enable_if::value>::type> - : public Callback3 { - public: - typedef Callback3 base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, P5, A1, A2, A3); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _MemberResultCallback_5_3(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : Callback3(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback3"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_5_3::base* -NewCallback(T1* obj, R (T2::*member)(P1, P2, P3, P4, P5, A1, A2, A3), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _MemberResultCallback_5_3(obj, member, p1, p2, p3, p4, p5); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_5_3::base* -NewPermanentCallback(T1* obj, R (T2::*member)(P1, P2, P3, P4, P5, A1, A2, A3), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _MemberResultCallback_5_3(obj, member, p1, p2, p3, p4, p5); -} -#endif - -template -class _FunctionResultCallback_5_3 : public ResultCallback3 { - public: - typedef ResultCallback3 base; - typedef R (*FunctionSignature)(P1, P2, P3, P4, P5, A1, A2, A3); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _FunctionResultCallback_5_3(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : ResultCallback3(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - R result = (*function_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3); - return result; - } else { - R result = (*function_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_5_3 - : public Callback3 { - public: - typedef Callback3 base; - typedef void (*FunctionSignature)(P1, P2, P3, P4, P5, A1, A2, A3); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _FunctionResultCallback_5_3(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : Callback3(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback3"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - (*function_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3); - } else { - (*function_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_5_3::base* -NewCallback(R (*function)(P1, P2, P3, P4, P5, A1, A2, A3), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _FunctionResultCallback_5_3(function, p1, p2, p3, p4, p5); -} - -template -inline typename _FunctionResultCallback_5_3::base* -NewPermanentCallback(R (*function)(P1, P2, P3, P4, P5, A1, A2, A3), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _FunctionResultCallback_5_3(function, p1, p2, p3, p4, p5); -} - -template ::value>::type> -class _ConstMemberResultCallback_6_3 : public ResultCallback3 { - public: - typedef ResultCallback3 base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, P5, P6, A1, A2, A3) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _ConstMemberResultCallback_6_3(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : ResultCallback3(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_6_3< - del, void, T, P1, P2, P3, P4, P5, P6, A1, A2, A3, - typename c_enable_if::value>::type> - : public Callback3 { - public: - typedef Callback3 base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, P5, P6, A1, A2, A3) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _ConstMemberResultCallback_6_3(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : Callback3(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback3"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_6_3::base* -NewCallback(const T1* obj, - R (T2::*member)(P1, P2, P3, P4, P5, P6, A1, A2, A3) const, - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5, typename ConstRef::type p6) { - return new _ConstMemberResultCallback_6_3(obj, member, p1, p2, p3, - p4, p5, p6); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_6_3::base* -NewPermanentCallback( - const T1* obj, R (T2::*member)(P1, P2, P3, P4, P5, P6, A1, A2, A3) const, - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5, typename ConstRef::type p6) { - return new _ConstMemberResultCallback_6_3(obj, member, p1, p2, - p3, p4, p5, p6); -} -#endif - -template ::value>::type> -class _MemberResultCallback_6_3 : public ResultCallback3 { - public: - typedef ResultCallback3 base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, P5, P6, A1, A2, A3); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _MemberResultCallback_6_3(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : ResultCallback3(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_6_3< - del, void, T, P1, P2, P3, P4, P5, P6, A1, A2, A3, - typename c_enable_if::value>::type> - : public Callback3 { - public: - typedef Callback3 base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, P5, P6, A1, A2, A3); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _MemberResultCallback_6_3(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : Callback3(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback3"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_6_3::base* -NewCallback(T1* obj, R (T2::*member)(P1, P2, P3, P4, P5, P6, A1, A2, A3), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5, typename ConstRef::type p6) { - return new _MemberResultCallback_6_3(obj, member, p1, p2, p3, p4, p5, - p6); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_6_3::base* -NewPermanentCallback( - T1* obj, R (T2::*member)(P1, P2, P3, P4, P5, P6, A1, A2, A3), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5, typename ConstRef::type p6) { - return new _MemberResultCallback_6_3(obj, member, p1, p2, p3, p4, p5, - p6); -} -#endif - -template -class _FunctionResultCallback_6_3 : public ResultCallback3 { - public: - typedef ResultCallback3 base; - typedef R (*FunctionSignature)(P1, P2, P3, P4, P5, P6, A1, A2, A3); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _FunctionResultCallback_6_3(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : ResultCallback3(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - R result = (*function_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3); - return result; - } else { - R result = (*function_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_6_3 - : public Callback3 { - public: - typedef Callback3 base; - typedef void (*FunctionSignature)(P1, P2, P3, P4, P5, P6, A1, A2, A3); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _FunctionResultCallback_6_3(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : Callback3(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback3"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3) { - if (!del) { - (*function_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3); - } else { - (*function_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_6_3::base* -NewCallback(R (*function)(P1, P2, P3, P4, P5, P6, A1, A2, A3), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5, typename ConstRef::type p6) { - return new _FunctionResultCallback_6_3(function, p1, p2, p3, p4, p5, - p6); -} - -template -inline typename _FunctionResultCallback_6_3::base* -NewPermanentCallback(R (*function)(P1, P2, P3, P4, P5, P6, A1, A2, A3), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) { - return new _FunctionResultCallback_6_3(function, p1, p2, p3, p4, p5, - p6); -} - -template ::value>::type> -class _ConstMemberResultCallback_0_4 - : public ResultCallback4 { - public: - typedef ResultCallback4 base; - typedef R (T::*MemberSignature)(A1, A2, A3, A4) const; - - private: - const T* object_; - MemberSignature member_; - - public: - inline _ConstMemberResultCallback_0_4(const T* object, MemberSignature member) - : ResultCallback4(), - object_(object), - member_(member) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - R result = (object_->*member_)(a1, a2, a3, a4); - return result; - } else { - R result = (object_->*member_)(a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_0_4< - del, void, T, A1, A2, A3, A4, - typename c_enable_if::value>::type> - : public Callback4 { - public: - typedef Callback4 base; - typedef void (T::*MemberSignature)(A1, A2, A3, A4) const; - - private: - const T* object_; - MemberSignature member_; - - public: - inline _ConstMemberResultCallback_0_4(const T* object, MemberSignature member) - : Callback4(), object_(object), member_(member) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback4"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - (object_->*member_)(a1, a2, a3, a4); - } else { - (object_->*member_)(a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline - typename _ConstMemberResultCallback_0_4::base* - NewCallback(const T1* obj, R (T2::*member)(A1, A2, A3, A4) const) { - return new _ConstMemberResultCallback_0_4( - obj, member); -} -#endif - -#ifndef SWIG -template -inline - typename _ConstMemberResultCallback_0_4::base* - NewPermanentCallback(const T1* obj, R (T2::*member)(A1, A2, A3, A4) const) { - return new _ConstMemberResultCallback_0_4( - obj, member); -} -#endif - -template ::value>::type> -class _MemberResultCallback_0_4 : public ResultCallback4 { - public: - typedef ResultCallback4 base; - typedef R (T::*MemberSignature)(A1, A2, A3, A4); - - private: - T* object_; - MemberSignature member_; - - public: - inline _MemberResultCallback_0_4(T* object, MemberSignature member) - : ResultCallback4(), - object_(object), - member_(member) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - R result = (object_->*member_)(a1, a2, a3, a4); - return result; - } else { - R result = (object_->*member_)(a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_0_4< - del, void, T, A1, A2, A3, A4, - typename c_enable_if::value>::type> - : public Callback4 { - public: - typedef Callback4 base; - typedef void (T::*MemberSignature)(A1, A2, A3, A4); - - private: - T* object_; - MemberSignature member_; - - public: - inline _MemberResultCallback_0_4(T* object, MemberSignature member) - : Callback4(), object_(object), member_(member) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback4"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - (object_->*member_)(a1, a2, a3, a4); - } else { - (object_->*member_)(a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_0_4::base* -NewCallback(T1* obj, R (T2::*member)(A1, A2, A3, A4)) { - return new _MemberResultCallback_0_4(obj, - member); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_0_4::base* -NewPermanentCallback(T1* obj, R (T2::*member)(A1, A2, A3, A4)) { - return new _MemberResultCallback_0_4(obj, - member); -} -#endif - -template -class _FunctionResultCallback_0_4 : public ResultCallback4 { - public: - typedef ResultCallback4 base; - typedef R (*FunctionSignature)(A1, A2, A3, A4); - - private: - FunctionSignature function_; - - public: - explicit inline _FunctionResultCallback_0_4(FunctionSignature function) - : ResultCallback4(), function_(function) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - R result = (*function_)(a1, a2, a3, a4); - return result; - } else { - R result = (*function_)(a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_0_4 - : public Callback4 { - public: - typedef Callback4 base; - typedef void (*FunctionSignature)(A1, A2, A3, A4); - - private: - FunctionSignature function_; - - public: - explicit inline _FunctionResultCallback_0_4(FunctionSignature function) - : Callback4(), function_(function) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback4"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - (*function_)(a1, a2, a3, a4); - } else { - (*function_)(a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_0_4::base* -NewCallback(R (*function)(A1, A2, A3, A4)) { - return new _FunctionResultCallback_0_4(function); -} - -template -inline typename _FunctionResultCallback_0_4::base* -NewPermanentCallback(R (*function)(A1, A2, A3, A4)) { - return new _FunctionResultCallback_0_4(function); -} - -template ::value>::type> -class _ConstMemberResultCallback_1_4 - : public ResultCallback4 { - public: - typedef ResultCallback4 base; - typedef R (T::*MemberSignature)(P1, A1, A2, A3, A4) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - - public: - inline _ConstMemberResultCallback_1_4(const T* object, MemberSignature member, - typename ConstRef::type p1) - : ResultCallback4(), - object_(object), - member_(member), - p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - R result = (object_->*member_)(p1_, a1, a2, a3, a4); - return result; - } else { - R result = (object_->*member_)(p1_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_1_4< - del, void, T, P1, A1, A2, A3, A4, - typename c_enable_if::value>::type> - : public Callback4 { - public: - typedef Callback4 base; - typedef void (T::*MemberSignature)(P1, A1, A2, A3, A4) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - - public: - inline _ConstMemberResultCallback_1_4(const T* object, MemberSignature member, - typename ConstRef::type p1) - : Callback4(), - object_(object), - member_(member), - p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback4"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - (object_->*member_)(p1_, a1, a2, a3, a4); - } else { - (object_->*member_)(p1_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_1_4::base* -NewCallback(const T1* obj, R (T2::*member)(P1, A1, A2, A3, A4) const, - typename ConstRef::type p1) { - return new _ConstMemberResultCallback_1_4( - obj, member, p1); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_1_4::base* -NewPermanentCallback(const T1* obj, R (T2::*member)(P1, A1, A2, A3, A4) const, - typename ConstRef::type p1) { - return new _ConstMemberResultCallback_1_4( - obj, member, p1); -} -#endif - -template ::value>::type> -class _MemberResultCallback_1_4 : public ResultCallback4 { - public: - typedef ResultCallback4 base; - typedef R (T::*MemberSignature)(P1, A1, A2, A3, A4); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - - public: - inline _MemberResultCallback_1_4(T* object, MemberSignature member, - typename ConstRef::type p1) - : ResultCallback4(), - object_(object), - member_(member), - p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - R result = (object_->*member_)(p1_, a1, a2, a3, a4); - return result; - } else { - R result = (object_->*member_)(p1_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_1_4< - del, void, T, P1, A1, A2, A3, A4, - typename c_enable_if::value>::type> - : public Callback4 { - public: - typedef Callback4 base; - typedef void (T::*MemberSignature)(P1, A1, A2, A3, A4); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - - public: - inline _MemberResultCallback_1_4(T* object, MemberSignature member, - typename ConstRef::type p1) - : Callback4(), - object_(object), - member_(member), - p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback4"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - (object_->*member_)(p1_, a1, a2, a3, a4); - } else { - (object_->*member_)(p1_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline - typename _MemberResultCallback_1_4::base* - NewCallback(T1* obj, R (T2::*member)(P1, A1, A2, A3, A4), - typename ConstRef::type p1) { - return new _MemberResultCallback_1_4( - obj, member, p1); -} -#endif - -#ifndef SWIG -template -inline - typename _MemberResultCallback_1_4::base* - NewPermanentCallback(T1* obj, R (T2::*member)(P1, A1, A2, A3, A4), - typename ConstRef::type p1) { - return new _MemberResultCallback_1_4( - obj, member, p1); -} -#endif - -template -class _FunctionResultCallback_1_4 : public ResultCallback4 { - public: - typedef ResultCallback4 base; - typedef R (*FunctionSignature)(P1, A1, A2, A3, A4); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - - public: - inline _FunctionResultCallback_1_4(FunctionSignature function, - typename ConstRef::type p1) - : ResultCallback4(), function_(function), p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - R result = (*function_)(p1_, a1, a2, a3, a4); - return result; - } else { - R result = (*function_)(p1_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_1_4 - : public Callback4 { - public: - typedef Callback4 base; - typedef void (*FunctionSignature)(P1, A1, A2, A3, A4); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - - public: - inline _FunctionResultCallback_1_4(FunctionSignature function, - typename ConstRef::type p1) - : Callback4(), function_(function), p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback4"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - (*function_)(p1_, a1, a2, a3, a4); - } else { - (*function_)(p1_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_1_4::base* -NewCallback(R (*function)(P1, A1, A2, A3, A4), typename ConstRef::type p1) { - return new _FunctionResultCallback_1_4(function, - p1); -} - -template -inline typename _FunctionResultCallback_1_4::base* -NewPermanentCallback(R (*function)(P1, A1, A2, A3, A4), - typename ConstRef::type p1) { - return new _FunctionResultCallback_1_4(function, - p1); -} - -template ::value>::type> -class _ConstMemberResultCallback_2_4 - : public ResultCallback4 { - public: - typedef ResultCallback4 base; - typedef R (T::*MemberSignature)(P1, P2, A1, A2, A3, A4) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _ConstMemberResultCallback_2_4(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2) - : ResultCallback4(), - object_(object), - member_(member), - p1_(p1), - p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, a1, a2, a3, a4); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_2_4< - del, void, T, P1, P2, A1, A2, A3, A4, - typename c_enable_if::value>::type> - : public Callback4 { - public: - typedef Callback4 base; - typedef void (T::*MemberSignature)(P1, P2, A1, A2, A3, A4) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _ConstMemberResultCallback_2_4(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2) - : Callback4(), - object_(object), - member_(member), - p1_(p1), - p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback4"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - (object_->*member_)(p1_, p2_, a1, a2, a3, a4); - } else { - (object_->*member_)(p1_, p2_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_2_4::base* -NewCallback(const T1* obj, R (T2::*member)(P1, P2, A1, A2, A3, A4) const, - typename ConstRef::type p1, typename ConstRef::type p2) { - return new _ConstMemberResultCallback_2_4(obj, member, p1, p2); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_2_4::base* -NewPermanentCallback(const T1* obj, - R (T2::*member)(P1, P2, A1, A2, A3, A4) const, - typename ConstRef::type p1, - typename ConstRef::type p2) { - return new _ConstMemberResultCallback_2_4(obj, member, p1, p2); -} -#endif - -template ::value>::type> -class _MemberResultCallback_2_4 : public ResultCallback4 { - public: - typedef ResultCallback4 base; - typedef R (T::*MemberSignature)(P1, P2, A1, A2, A3, A4); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _MemberResultCallback_2_4(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2) - : ResultCallback4(), - object_(object), - member_(member), - p1_(p1), - p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, a1, a2, a3, a4); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_2_4< - del, void, T, P1, P2, A1, A2, A3, A4, - typename c_enable_if::value>::type> - : public Callback4 { - public: - typedef Callback4 base; - typedef void (T::*MemberSignature)(P1, P2, A1, A2, A3, A4); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _MemberResultCallback_2_4(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2) - : Callback4(), - object_(object), - member_(member), - p1_(p1), - p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback4"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - (object_->*member_)(p1_, p2_, a1, a2, a3, a4); - } else { - (object_->*member_)(p1_, p2_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_2_4::base* -NewCallback(T1* obj, R (T2::*member)(P1, P2, A1, A2, A3, A4), - typename ConstRef::type p1, typename ConstRef::type p2) { - return new _MemberResultCallback_2_4( - obj, member, p1, p2); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_2_4::base* -NewPermanentCallback(T1* obj, R (T2::*member)(P1, P2, A1, A2, A3, A4), - typename ConstRef::type p1, - typename ConstRef::type p2) { - return new _MemberResultCallback_2_4( - obj, member, p1, p2); -} -#endif - -template -class _FunctionResultCallback_2_4 : public ResultCallback4 { - public: - typedef ResultCallback4 base; - typedef R (*FunctionSignature)(P1, P2, A1, A2, A3, A4); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _FunctionResultCallback_2_4(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2) - : ResultCallback4(), - function_(function), - p1_(p1), - p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - R result = (*function_)(p1_, p2_, a1, a2, a3, a4); - return result; - } else { - R result = (*function_)(p1_, p2_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_2_4 - : public Callback4 { - public: - typedef Callback4 base; - typedef void (*FunctionSignature)(P1, P2, A1, A2, A3, A4); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _FunctionResultCallback_2_4(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2) - : Callback4(), function_(function), p1_(p1), p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback4"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - (*function_)(p1_, p2_, a1, a2, a3, a4); - } else { - (*function_)(p1_, p2_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline - typename _FunctionResultCallback_2_4::base* - NewCallback(R (*function)(P1, P2, A1, A2, A3, A4), - typename ConstRef::type p1, - typename ConstRef::type p2) { - return new _FunctionResultCallback_2_4( - function, p1, p2); -} - -template -inline typename _FunctionResultCallback_2_4::base* -NewPermanentCallback(R (*function)(P1, P2, A1, A2, A3, A4), - typename ConstRef::type p1, - typename ConstRef::type p2) { - return new _FunctionResultCallback_2_4( - function, p1, p2); -} - -template ::value>::type> -class _ConstMemberResultCallback_3_4 - : public ResultCallback4 { - public: - typedef ResultCallback4 base; - typedef R (T::*MemberSignature)(P1, P2, P3, A1, A2, A3, A4) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _ConstMemberResultCallback_3_4(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : ResultCallback4(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, a1, a2, a3, a4); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_3_4< - del, void, T, P1, P2, P3, A1, A2, A3, A4, - typename c_enable_if::value>::type> - : public Callback4 { - public: - typedef Callback4 base; - typedef void (T::*MemberSignature)(P1, P2, P3, A1, A2, A3, A4) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _ConstMemberResultCallback_3_4(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : Callback4(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback4"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, a1, a2, a3, a4); - } else { - (object_->*member_)(p1_, p2_, p3_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_3_4::base* -NewCallback(const T1* obj, R (T2::*member)(P1, P2, P3, A1, A2, A3, A4) const, - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _ConstMemberResultCallback_3_4(obj, member, p1, p2, p3); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_3_4::base* -NewPermanentCallback(const T1* obj, - R (T2::*member)(P1, P2, P3, A1, A2, A3, A4) const, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _ConstMemberResultCallback_3_4(obj, member, p1, p2, p3); -} -#endif - -template ::value>::type> -class _MemberResultCallback_3_4 : public ResultCallback4 { - public: - typedef ResultCallback4 base; - typedef R (T::*MemberSignature)(P1, P2, P3, A1, A2, A3, A4); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _MemberResultCallback_3_4(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : ResultCallback4(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, a1, a2, a3, a4); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_3_4< - del, void, T, P1, P2, P3, A1, A2, A3, A4, - typename c_enable_if::value>::type> - : public Callback4 { - public: - typedef Callback4 base; - typedef void (T::*MemberSignature)(P1, P2, P3, A1, A2, A3, A4); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _MemberResultCallback_3_4(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : Callback4(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback4"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, a1, a2, a3, a4); - } else { - (object_->*member_)(p1_, p2_, p3_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_3_4::base* -NewCallback(T1* obj, R (T2::*member)(P1, P2, P3, A1, A2, A3, A4), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _MemberResultCallback_3_4( - obj, member, p1, p2, p3); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_3_4::base* -NewPermanentCallback(T1* obj, R (T2::*member)(P1, P2, P3, A1, A2, A3, A4), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _MemberResultCallback_3_4(obj, member, p1, p2, p3); -} -#endif - -template -class _FunctionResultCallback_3_4 : public ResultCallback4 { - public: - typedef ResultCallback4 base; - typedef R (*FunctionSignature)(P1, P2, P3, A1, A2, A3, A4); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _FunctionResultCallback_3_4(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : ResultCallback4(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - R result = (*function_)(p1_, p2_, p3_, a1, a2, a3, a4); - return result; - } else { - R result = (*function_)(p1_, p2_, p3_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_3_4 - : public Callback4 { - public: - typedef Callback4 base; - typedef void (*FunctionSignature)(P1, P2, P3, A1, A2, A3, A4); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _FunctionResultCallback_3_4(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : Callback4(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback4"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - (*function_)(p1_, p2_, p3_, a1, a2, a3, a4); - } else { - (*function_)(p1_, p2_, p3_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_3_4::base* -NewCallback(R (*function)(P1, P2, P3, A1, A2, A3, A4), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _FunctionResultCallback_3_4( - function, p1, p2, p3); -} - -template -inline typename _FunctionResultCallback_3_4::base* -NewPermanentCallback(R (*function)(P1, P2, P3, A1, A2, A3, A4), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _FunctionResultCallback_3_4( - function, p1, p2, p3); -} - -template ::value>::type> -class _ConstMemberResultCallback_4_4 - : public ResultCallback4 { - public: - typedef ResultCallback4 base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, A1, A2, A3, A4) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _ConstMemberResultCallback_4_4(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : ResultCallback4(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2, a3, a4); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_4_4< - del, void, T, P1, P2, P3, P4, A1, A2, A3, A4, - typename c_enable_if::value>::type> - : public Callback4 { - public: - typedef Callback4 base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, A1, A2, A3, A4) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _ConstMemberResultCallback_4_4(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : Callback4(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback4"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2, a3, a4); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_4_4::base* -NewCallback(const T1* obj, - R (T2::*member)(P1, P2, P3, P4, A1, A2, A3, A4) const, - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4) { - return new _ConstMemberResultCallback_4_4(obj, member, p1, p2, p3, - p4); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_4_4::base* -NewPermanentCallback(const T1* obj, - R (T2::*member)(P1, P2, P3, P4, A1, A2, A3, A4) const, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) { - return new _ConstMemberResultCallback_4_4(obj, member, p1, p2, p3, - p4); -} -#endif - -template ::value>::type> -class _MemberResultCallback_4_4 : public ResultCallback4 { - public: - typedef ResultCallback4 base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, A1, A2, A3, A4); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _MemberResultCallback_4_4(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : ResultCallback4(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2, a3, a4); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_4_4< - del, void, T, P1, P2, P3, P4, A1, A2, A3, A4, - typename c_enable_if::value>::type> - : public Callback4 { - public: - typedef Callback4 base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, A1, A2, A3, A4); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _MemberResultCallback_4_4(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : Callback4(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback4"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2, a3, a4); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_4_4::base* -NewCallback(T1* obj, R (T2::*member)(P1, P2, P3, P4, A1, A2, A3, A4), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4) { - return new _MemberResultCallback_4_4(obj, member, p1, p2, p3, p4); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_4_4::base* -NewPermanentCallback(T1* obj, R (T2::*member)(P1, P2, P3, P4, A1, A2, A3, A4), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) { - return new _MemberResultCallback_4_4(obj, member, p1, p2, p3, p4); -} -#endif - -template -class _FunctionResultCallback_4_4 : public ResultCallback4 { - public: - typedef ResultCallback4 base; - typedef R (*FunctionSignature)(P1, P2, P3, P4, A1, A2, A3, A4); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _FunctionResultCallback_4_4(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : ResultCallback4(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - R result = (*function_)(p1_, p2_, p3_, p4_, a1, a2, a3, a4); - return result; - } else { - R result = (*function_)(p1_, p2_, p3_, p4_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_4_4 - : public Callback4 { - public: - typedef Callback4 base; - typedef void (*FunctionSignature)(P1, P2, P3, P4, A1, A2, A3, A4); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _FunctionResultCallback_4_4(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : Callback4(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback4"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - (*function_)(p1_, p2_, p3_, p4_, a1, a2, a3, a4); - } else { - (*function_)(p1_, p2_, p3_, p4_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_4_4::base* -NewCallback(R (*function)(P1, P2, P3, P4, A1, A2, A3, A4), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4) { - return new _FunctionResultCallback_4_4(function, p1, p2, p3, p4); -} - -template -inline typename _FunctionResultCallback_4_4::base* -NewPermanentCallback(R (*function)(P1, P2, P3, P4, A1, A2, A3, A4), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) { - return new _FunctionResultCallback_4_4(function, p1, p2, p3, p4); -} - -template ::value>::type> -class _ConstMemberResultCallback_5_4 - : public ResultCallback4 { - public: - typedef ResultCallback4 base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, P5, A1, A2, A3, A4) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _ConstMemberResultCallback_5_4(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : ResultCallback4(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3, a4); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_5_4< - del, void, T, P1, P2, P3, P4, P5, A1, A2, A3, A4, - typename c_enable_if::value>::type> - : public Callback4 { - public: - typedef Callback4 base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, P5, A1, A2, A3, A4) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _ConstMemberResultCallback_5_4(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : Callback4(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback4"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3, a4); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_5_4::base* -NewCallback(const T1* obj, - R (T2::*member)(P1, P2, P3, P4, P5, A1, A2, A3, A4) const, - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _ConstMemberResultCallback_5_4(obj, member, p1, p2, p3, - p4, p5); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_5_4::base* -NewPermanentCallback(const T1* obj, - R (T2::*member)(P1, P2, P3, P4, P5, A1, A2, A3, A4) const, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _ConstMemberResultCallback_5_4(obj, member, p1, p2, - p3, p4, p5); -} -#endif - -template ::value>::type> -class _MemberResultCallback_5_4 : public ResultCallback4 { - public: - typedef ResultCallback4 base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, P5, A1, A2, A3, A4); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _MemberResultCallback_5_4(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : ResultCallback4(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3, a4); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_5_4< - del, void, T, P1, P2, P3, P4, P5, A1, A2, A3, A4, - typename c_enable_if::value>::type> - : public Callback4 { - public: - typedef Callback4 base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, P5, A1, A2, A3, A4); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _MemberResultCallback_5_4(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : Callback4(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback4"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3, a4); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_5_4::base* -NewCallback(T1* obj, R (T2::*member)(P1, P2, P3, P4, P5, A1, A2, A3, A4), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _MemberResultCallback_5_4(obj, member, p1, p2, p3, p4, p5); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_5_4::base* -NewPermanentCallback(T1* obj, - R (T2::*member)(P1, P2, P3, P4, P5, A1, A2, A3, A4), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _MemberResultCallback_5_4(obj, member, p1, p2, p3, p4, p5); -} -#endif - -template -class _FunctionResultCallback_5_4 : public ResultCallback4 { - public: - typedef ResultCallback4 base; - typedef R (*FunctionSignature)(P1, P2, P3, P4, P5, A1, A2, A3, A4); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _FunctionResultCallback_5_4(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : ResultCallback4(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - R result = (*function_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3, a4); - return result; - } else { - R result = (*function_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_5_4 - : public Callback4 { - public: - typedef Callback4 base; - typedef void (*FunctionSignature)(P1, P2, P3, P4, P5, A1, A2, A3, A4); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _FunctionResultCallback_5_4(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : Callback4(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback4"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - (*function_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3, a4); - } else { - (*function_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_5_4::base* -NewCallback(R (*function)(P1, P2, P3, P4, P5, A1, A2, A3, A4), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _FunctionResultCallback_5_4(function, p1, p2, p3, p4, p5); -} - -template -inline typename _FunctionResultCallback_5_4::base* -NewPermanentCallback(R (*function)(P1, P2, P3, P4, P5, A1, A2, A3, A4), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _FunctionResultCallback_5_4(function, p1, p2, p3, p4, p5); -} - -template ::value>::type> -class _ConstMemberResultCallback_6_4 - : public ResultCallback4 { - public: - typedef ResultCallback4 base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, P5, P6, A1, A2, A3, A4) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _ConstMemberResultCallback_6_4(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : ResultCallback4(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - R result = - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3, a4); - return result; - } else { - R result = - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_6_4< - del, void, T, P1, P2, P3, P4, P5, P6, A1, A2, A3, A4, - typename c_enable_if::value>::type> - : public Callback4 { - public: - typedef Callback4 base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, P5, P6, A1, A2, A3, - A4) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _ConstMemberResultCallback_6_4(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : Callback4(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback4"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3, a4); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_6_4::base* -NewCallback(const T1* obj, - R (T2::*member)(P1, P2, P3, P4, P5, P6, A1, A2, A3, A4) const, - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5, typename ConstRef::type p6) { - return new _ConstMemberResultCallback_6_4(obj, member, p1, p2, - p3, p4, p5, p6); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_6_4::base* -NewPermanentCallback( - const T1* obj, - R (T2::*member)(P1, P2, P3, P4, P5, P6, A1, A2, A3, A4) const, - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5, typename ConstRef::type p6) { - return new _ConstMemberResultCallback_6_4( - obj, member, p1, p2, p3, p4, p5, p6); -} -#endif - -template ::value>::type> -class _MemberResultCallback_6_4 : public ResultCallback4 { - public: - typedef ResultCallback4 base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, P5, P6, A1, A2, A3, A4); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _MemberResultCallback_6_4(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : ResultCallback4(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - R result = - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3, a4); - return result; - } else { - R result = - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_6_4< - del, void, T, P1, P2, P3, P4, P5, P6, A1, A2, A3, A4, - typename c_enable_if::value>::type> - : public Callback4 { - public: - typedef Callback4 base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, P5, P6, A1, A2, A3, A4); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _MemberResultCallback_6_4(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : Callback4(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback4"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3, a4); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_6_4::base* -NewCallback(T1* obj, R (T2::*member)(P1, P2, P3, P4, P5, P6, A1, A2, A3, A4), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5, typename ConstRef::type p6) { - return new _MemberResultCallback_6_4(obj, member, p1, p2, p3, p4, - p5, p6); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_6_4::base* -NewPermanentCallback( - T1* obj, R (T2::*member)(P1, P2, P3, P4, P5, P6, A1, A2, A3, A4), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5, typename ConstRef::type p6) { - return new _MemberResultCallback_6_4(obj, member, p1, p2, p3, p4, - p5, p6); -} -#endif - -template -class _FunctionResultCallback_6_4 : public ResultCallback4 { - public: - typedef ResultCallback4 base; - typedef R (*FunctionSignature)(P1, P2, P3, P4, P5, P6, A1, A2, A3, A4); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _FunctionResultCallback_6_4(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : ResultCallback4(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - R result = (*function_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3, a4); - return result; - } else { - R result = (*function_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_6_4 : public Callback4 { - public: - typedef Callback4 base; - typedef void (*FunctionSignature)(P1, P2, P3, P4, P5, P6, A1, A2, A3, A4); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _FunctionResultCallback_6_4(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : Callback4(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback4"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4) { - if (!del) { - (*function_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3, a4); - } else { - (*function_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3, a4); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_6_4::base* -NewCallback(R (*function)(P1, P2, P3, P4, P5, P6, A1, A2, A3, A4), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5, typename ConstRef::type p6) { - return new _FunctionResultCallback_6_4(function, p1, p2, p3, p4, - p5, p6); -} - -template -inline typename _FunctionResultCallback_6_4::base* -NewPermanentCallback(R (*function)(P1, P2, P3, P4, P5, P6, A1, A2, A3, A4), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) { - return new _FunctionResultCallback_6_4(function, p1, p2, p3, p4, - p5, p6); -} - -template ::value>::type> -class _ConstMemberResultCallback_0_5 - : public ResultCallback5 { - public: - typedef ResultCallback5 base; - typedef R (T::*MemberSignature)(A1, A2, A3, A4, A5) const; - - private: - const T* object_; - MemberSignature member_; - - public: - inline _ConstMemberResultCallback_0_5(const T* object, MemberSignature member) - : ResultCallback5(), - object_(object), - member_(member) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) - CallbackUtils_::FailIsRepeatable("ResultCallback5"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - R result = (object_->*member_)(a1, a2, a3, a4, a5); - return result; - } else { - R result = (object_->*member_)(a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_0_5< - del, void, T, A1, A2, A3, A4, A5, - typename c_enable_if::value>::type> - : public Callback5 { - public: - typedef Callback5 base; - typedef void (T::*MemberSignature)(A1, A2, A3, A4, A5) const; - - private: - const T* object_; - MemberSignature member_; - - public: - inline _ConstMemberResultCallback_0_5(const T* object, MemberSignature member) - : Callback5(), object_(object), member_(member) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback5"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - (object_->*member_)(a1, a2, a3, a4, a5); - } else { - (object_->*member_)(a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_0_5::base* -NewCallback(const T1* obj, R (T2::*member)(A1, A2, A3, A4, A5) const) { - return new _ConstMemberResultCallback_0_5( - obj, member); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_0_5::base* -NewPermanentCallback(const T1* obj, R (T2::*member)(A1, A2, A3, A4, A5) const) { - return new _ConstMemberResultCallback_0_5( - obj, member); -} -#endif - -template ::value>::type> -class _MemberResultCallback_0_5 - : public ResultCallback5 { - public: - typedef ResultCallback5 base; - typedef R (T::*MemberSignature)(A1, A2, A3, A4, A5); - - private: - T* object_; - MemberSignature member_; - - public: - inline _MemberResultCallback_0_5(T* object, MemberSignature member) - : ResultCallback5(), - object_(object), - member_(member) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) - CallbackUtils_::FailIsRepeatable("ResultCallback5"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - R result = (object_->*member_)(a1, a2, a3, a4, a5); - return result; - } else { - R result = (object_->*member_)(a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_0_5< - del, void, T, A1, A2, A3, A4, A5, - typename c_enable_if::value>::type> - : public Callback5 { - public: - typedef Callback5 base; - typedef void (T::*MemberSignature)(A1, A2, A3, A4, A5); - - private: - T* object_; - MemberSignature member_; - - public: - inline _MemberResultCallback_0_5(T* object, MemberSignature member) - : Callback5(), object_(object), member_(member) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback5"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - (object_->*member_)(a1, a2, a3, a4, a5); - } else { - (object_->*member_)(a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline - typename _MemberResultCallback_0_5::base* - NewCallback(T1* obj, R (T2::*member)(A1, A2, A3, A4, A5)) { - return new _MemberResultCallback_0_5(obj, - member); -} -#endif - -#ifndef SWIG -template -inline - typename _MemberResultCallback_0_5::base* - NewPermanentCallback(T1* obj, R (T2::*member)(A1, A2, A3, A4, A5)) { - return new _MemberResultCallback_0_5( - obj, member); -} -#endif - -template -class _FunctionResultCallback_0_5 - : public ResultCallback5 { - public: - typedef ResultCallback5 base; - typedef R (*FunctionSignature)(A1, A2, A3, A4, A5); - - private: - FunctionSignature function_; - - public: - explicit inline _FunctionResultCallback_0_5(FunctionSignature function) - : ResultCallback5(), function_(function) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) - CallbackUtils_::FailIsRepeatable("ResultCallback5"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - R result = (*function_)(a1, a2, a3, a4, a5); - return result; - } else { - R result = (*function_)(a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_0_5 - : public Callback5 { - public: - typedef Callback5 base; - typedef void (*FunctionSignature)(A1, A2, A3, A4, A5); - - private: - FunctionSignature function_; - - public: - explicit inline _FunctionResultCallback_0_5(FunctionSignature function) - : Callback5(), function_(function) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback5"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - (*function_)(a1, a2, a3, a4, a5); - } else { - (*function_)(a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_0_5::base* -NewCallback(R (*function)(A1, A2, A3, A4, A5)) { - return new _FunctionResultCallback_0_5(function); -} - -template -inline typename _FunctionResultCallback_0_5::base* -NewPermanentCallback(R (*function)(A1, A2, A3, A4, A5)) { - return new _FunctionResultCallback_0_5( - function); -} - -template ::value>::type> -class _ConstMemberResultCallback_1_5 - : public ResultCallback5 { - public: - typedef ResultCallback5 base; - typedef R (T::*MemberSignature)(P1, A1, A2, A3, A4, A5) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - - public: - inline _ConstMemberResultCallback_1_5(const T* object, MemberSignature member, - typename ConstRef::type p1) - : ResultCallback5(), - object_(object), - member_(member), - p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) - CallbackUtils_::FailIsRepeatable("ResultCallback5"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - R result = (object_->*member_)(p1_, a1, a2, a3, a4, a5); - return result; - } else { - R result = (object_->*member_)(p1_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_1_5< - del, void, T, P1, A1, A2, A3, A4, A5, - typename c_enable_if::value>::type> - : public Callback5 { - public: - typedef Callback5 base; - typedef void (T::*MemberSignature)(P1, A1, A2, A3, A4, A5) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - - public: - inline _ConstMemberResultCallback_1_5(const T* object, MemberSignature member, - typename ConstRef::type p1) - : Callback5(), - object_(object), - member_(member), - p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback5"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - (object_->*member_)(p1_, a1, a2, a3, a4, a5); - } else { - (object_->*member_)(p1_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_1_5::base* -NewCallback(const T1* obj, R (T2::*member)(P1, A1, A2, A3, A4, A5) const, - typename ConstRef::type p1) { - return new _ConstMemberResultCallback_1_5(obj, member, p1); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_1_5::base* -NewPermanentCallback(const T1* obj, - R (T2::*member)(P1, A1, A2, A3, A4, A5) const, - typename ConstRef::type p1) { - return new _ConstMemberResultCallback_1_5(obj, member, p1); -} -#endif - -template ::value>::type> -class _MemberResultCallback_1_5 - : public ResultCallback5 { - public: - typedef ResultCallback5 base; - typedef R (T::*MemberSignature)(P1, A1, A2, A3, A4, A5); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - - public: - inline _MemberResultCallback_1_5(T* object, MemberSignature member, - typename ConstRef::type p1) - : ResultCallback5(), - object_(object), - member_(member), - p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) - CallbackUtils_::FailIsRepeatable("ResultCallback5"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - R result = (object_->*member_)(p1_, a1, a2, a3, a4, a5); - return result; - } else { - R result = (object_->*member_)(p1_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_1_5< - del, void, T, P1, A1, A2, A3, A4, A5, - typename c_enable_if::value>::type> - : public Callback5 { - public: - typedef Callback5 base; - typedef void (T::*MemberSignature)(P1, A1, A2, A3, A4, A5); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - - public: - inline _MemberResultCallback_1_5(T* object, MemberSignature member, - typename ConstRef::type p1) - : Callback5(), - object_(object), - member_(member), - p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback5"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - (object_->*member_)(p1_, a1, a2, a3, a4, a5); - } else { - (object_->*member_)(p1_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_1_5::base* -NewCallback(T1* obj, R (T2::*member)(P1, A1, A2, A3, A4, A5), - typename ConstRef::type p1) { - return new _MemberResultCallback_1_5( - obj, member, p1); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_1_5::base* -NewPermanentCallback(T1* obj, R (T2::*member)(P1, A1, A2, A3, A4, A5), - typename ConstRef::type p1) { - return new _MemberResultCallback_1_5( - obj, member, p1); -} -#endif - -template -class _FunctionResultCallback_1_5 - : public ResultCallback5 { - public: - typedef ResultCallback5 base; - typedef R (*FunctionSignature)(P1, A1, A2, A3, A4, A5); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - - public: - inline _FunctionResultCallback_1_5(FunctionSignature function, - typename ConstRef::type p1) - : ResultCallback5(), - function_(function), - p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) - CallbackUtils_::FailIsRepeatable("ResultCallback5"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - R result = (*function_)(p1_, a1, a2, a3, a4, a5); - return result; - } else { - R result = (*function_)(p1_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_1_5 - : public Callback5 { - public: - typedef Callback5 base; - typedef void (*FunctionSignature)(P1, A1, A2, A3, A4, A5); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - - public: - inline _FunctionResultCallback_1_5(FunctionSignature function, - typename ConstRef::type p1) - : Callback5(), function_(function), p1_(p1) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback5"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - (*function_)(p1_, a1, a2, a3, a4, a5); - } else { - (*function_)(p1_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline - typename _FunctionResultCallback_1_5::base* - NewCallback(R (*function)(P1, A1, A2, A3, A4, A5), - typename ConstRef::type p1) { - return new _FunctionResultCallback_1_5( - function, p1); -} - -template -inline typename _FunctionResultCallback_1_5::base* -NewPermanentCallback(R (*function)(P1, A1, A2, A3, A4, A5), - typename ConstRef::type p1) { - return new _FunctionResultCallback_1_5( - function, p1); -} - -template ::value>::type> -class _ConstMemberResultCallback_2_5 - : public ResultCallback5 { - public: - typedef ResultCallback5 base; - typedef R (T::*MemberSignature)(P1, P2, A1, A2, A3, A4, A5) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _ConstMemberResultCallback_2_5(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2) - : ResultCallback5(), - object_(object), - member_(member), - p1_(p1), - p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) - CallbackUtils_::FailIsRepeatable("ResultCallback5"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, a1, a2, a3, a4, a5); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_2_5< - del, void, T, P1, P2, A1, A2, A3, A4, A5, - typename c_enable_if::value>::type> - : public Callback5 { - public: - typedef Callback5 base; - typedef void (T::*MemberSignature)(P1, P2, A1, A2, A3, A4, A5) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _ConstMemberResultCallback_2_5(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2) - : Callback5(), - object_(object), - member_(member), - p1_(p1), - p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback5"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - (object_->*member_)(p1_, p2_, a1, a2, a3, a4, a5); - } else { - (object_->*member_)(p1_, p2_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_2_5::base* -NewCallback(const T1* obj, R (T2::*member)(P1, P2, A1, A2, A3, A4, A5) const, - typename ConstRef::type p1, typename ConstRef::type p2) { - return new _ConstMemberResultCallback_2_5(obj, member, p1, p2); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_2_5::base* -NewPermanentCallback(const T1* obj, - R (T2::*member)(P1, P2, A1, A2, A3, A4, A5) const, - typename ConstRef::type p1, - typename ConstRef::type p2) { - return new _ConstMemberResultCallback_2_5(obj, member, p1, p2); -} -#endif - -template ::value>::type> -class _MemberResultCallback_2_5 - : public ResultCallback5 { - public: - typedef ResultCallback5 base; - typedef R (T::*MemberSignature)(P1, P2, A1, A2, A3, A4, A5); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _MemberResultCallback_2_5(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2) - : ResultCallback5(), - object_(object), - member_(member), - p1_(p1), - p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) - CallbackUtils_::FailIsRepeatable("ResultCallback5"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, a1, a2, a3, a4, a5); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_2_5< - del, void, T, P1, P2, A1, A2, A3, A4, A5, - typename c_enable_if::value>::type> - : public Callback5 { - public: - typedef Callback5 base; - typedef void (T::*MemberSignature)(P1, P2, A1, A2, A3, A4, A5); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _MemberResultCallback_2_5(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2) - : Callback5(), - object_(object), - member_(member), - p1_(p1), - p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback5"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - (object_->*member_)(p1_, p2_, a1, a2, a3, a4, a5); - } else { - (object_->*member_)(p1_, p2_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_2_5::base* -NewCallback(T1* obj, R (T2::*member)(P1, P2, A1, A2, A3, A4, A5), - typename ConstRef::type p1, typename ConstRef::type p2) { - return new _MemberResultCallback_2_5( - obj, member, p1, p2); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_2_5::base* -NewPermanentCallback(T1* obj, R (T2::*member)(P1, P2, A1, A2, A3, A4, A5), - typename ConstRef::type p1, - typename ConstRef::type p2) { - return new _MemberResultCallback_2_5(obj, member, p1, p2); -} -#endif - -template -class _FunctionResultCallback_2_5 - : public ResultCallback5 { - public: - typedef ResultCallback5 base; - typedef R (*FunctionSignature)(P1, P2, A1, A2, A3, A4, A5); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _FunctionResultCallback_2_5(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2) - : ResultCallback5(), - function_(function), - p1_(p1), - p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) - CallbackUtils_::FailIsRepeatable("ResultCallback5"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - R result = (*function_)(p1_, p2_, a1, a2, a3, a4, a5); - return result; - } else { - R result = (*function_)(p1_, p2_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_2_5 - : public Callback5 { - public: - typedef Callback5 base; - typedef void (*FunctionSignature)(P1, P2, A1, A2, A3, A4, A5); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - - public: - inline _FunctionResultCallback_2_5(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2) - : Callback5(), - function_(function), - p1_(p1), - p2_(p2) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback5"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - (*function_)(p1_, p2_, a1, a2, a3, a4, a5); - } else { - (*function_)(p1_, p2_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_2_5::base* -NewCallback(R (*function)(P1, P2, A1, A2, A3, A4, A5), - typename ConstRef::type p1, typename ConstRef::type p2) { - return new _FunctionResultCallback_2_5( - function, p1, p2); -} - -template -inline typename _FunctionResultCallback_2_5::base* -NewPermanentCallback(R (*function)(P1, P2, A1, A2, A3, A4, A5), - typename ConstRef::type p1, - typename ConstRef::type p2) { - return new _FunctionResultCallback_2_5( - function, p1, p2); -} - -template ::value>::type> -class _ConstMemberResultCallback_3_5 - : public ResultCallback5 { - public: - typedef ResultCallback5 base; - typedef R (T::*MemberSignature)(P1, P2, P3, A1, A2, A3, A4, A5) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _ConstMemberResultCallback_3_5(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : ResultCallback5(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) - CallbackUtils_::FailIsRepeatable("ResultCallback5"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, a1, a2, a3, a4, a5); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_3_5< - del, void, T, P1, P2, P3, A1, A2, A3, A4, A5, - typename c_enable_if::value>::type> - : public Callback5 { - public: - typedef Callback5 base; - typedef void (T::*MemberSignature)(P1, P2, P3, A1, A2, A3, A4, A5) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _ConstMemberResultCallback_3_5(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : Callback5(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback5"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, a1, a2, a3, a4, a5); - } else { - (object_->*member_)(p1_, p2_, p3_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_3_5::base* -NewCallback(const T1* obj, - R (T2::*member)(P1, P2, P3, A1, A2, A3, A4, A5) const, - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _ConstMemberResultCallback_3_5(obj, member, p1, p2, p3); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_3_5::base* -NewPermanentCallback(const T1* obj, - R (T2::*member)(P1, P2, P3, A1, A2, A3, A4, A5) const, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _ConstMemberResultCallback_3_5(obj, member, p1, p2, - p3); -} -#endif - -template ::value>::type> -class _MemberResultCallback_3_5 - : public ResultCallback5 { - public: - typedef ResultCallback5 base; - typedef R (T::*MemberSignature)(P1, P2, P3, A1, A2, A3, A4, A5); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _MemberResultCallback_3_5(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : ResultCallback5(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) - CallbackUtils_::FailIsRepeatable("ResultCallback5"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, a1, a2, a3, a4, a5); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_3_5< - del, void, T, P1, P2, P3, A1, A2, A3, A4, A5, - typename c_enable_if::value>::type> - : public Callback5 { - public: - typedef Callback5 base; - typedef void (T::*MemberSignature)(P1, P2, P3, A1, A2, A3, A4, A5); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _MemberResultCallback_3_5(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : Callback5(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback5"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, a1, a2, a3, a4, a5); - } else { - (object_->*member_)(p1_, p2_, p3_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_3_5::base* -NewCallback(T1* obj, R (T2::*member)(P1, P2, P3, A1, A2, A3, A4, A5), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _MemberResultCallback_3_5(obj, member, p1, p2, p3); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_3_5::base* -NewPermanentCallback(T1* obj, R (T2::*member)(P1, P2, P3, A1, A2, A3, A4, A5), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _MemberResultCallback_3_5(obj, member, p1, p2, p3); -} -#endif - -template -class _FunctionResultCallback_3_5 - : public ResultCallback5 { - public: - typedef ResultCallback5 base; - typedef R (*FunctionSignature)(P1, P2, P3, A1, A2, A3, A4, A5); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _FunctionResultCallback_3_5(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : ResultCallback5(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) - CallbackUtils_::FailIsRepeatable("ResultCallback5"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - R result = (*function_)(p1_, p2_, p3_, a1, a2, a3, a4, a5); - return result; - } else { - R result = (*function_)(p1_, p2_, p3_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_3_5 - : public Callback5 { - public: - typedef Callback5 base; - typedef void (*FunctionSignature)(P1, P2, P3, A1, A2, A3, A4, A5); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - - public: - inline _FunctionResultCallback_3_5(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) - : Callback5(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback5"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - (*function_)(p1_, p2_, p3_, a1, a2, a3, a4, a5); - } else { - (*function_)(p1_, p2_, p3_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_3_5::base* -NewCallback(R (*function)(P1, P2, P3, A1, A2, A3, A4, A5), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _FunctionResultCallback_3_5(function, p1, p2, p3); -} - -template -inline typename _FunctionResultCallback_3_5::base* -NewPermanentCallback(R (*function)(P1, P2, P3, A1, A2, A3, A4, A5), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3) { - return new _FunctionResultCallback_3_5(function, p1, p2, p3); -} - -template ::value>::type> -class _ConstMemberResultCallback_4_5 - : public ResultCallback5 { - public: - typedef ResultCallback5 base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, A1, A2, A3, A4, A5) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _ConstMemberResultCallback_4_5(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : ResultCallback5(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) - CallbackUtils_::FailIsRepeatable("ResultCallback5"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2, a3, a4, a5); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_4_5< - del, void, T, P1, P2, P3, P4, A1, A2, A3, A4, A5, - typename c_enable_if::value>::type> - : public Callback5 { - public: - typedef Callback5 base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, A1, A2, A3, A4, A5) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _ConstMemberResultCallback_4_5(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : Callback5(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback5"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2, a3, a4, a5); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_4_5::base* -NewCallback(const T1* obj, - R (T2::*member)(P1, P2, P3, P4, A1, A2, A3, A4, A5) const, - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4) { - return new _ConstMemberResultCallback_4_5(obj, member, p1, p2, p3, - p4); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_4_5::base* -NewPermanentCallback(const T1* obj, - R (T2::*member)(P1, P2, P3, P4, A1, A2, A3, A4, A5) const, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) { - return new _ConstMemberResultCallback_4_5(obj, member, p1, p2, - p3, p4); -} -#endif - -template ::value>::type> -class _MemberResultCallback_4_5 - : public ResultCallback5 { - public: - typedef ResultCallback5 base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, A1, A2, A3, A4, A5); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _MemberResultCallback_4_5(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : ResultCallback5(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) - CallbackUtils_::FailIsRepeatable("ResultCallback5"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2, a3, a4, a5); - return result; - } else { - R result = (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_4_5< - del, void, T, P1, P2, P3, P4, A1, A2, A3, A4, A5, - typename c_enable_if::value>::type> - : public Callback5 { - public: - typedef Callback5 base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, A1, A2, A3, A4, A5); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _MemberResultCallback_4_5(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : Callback5(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback5"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2, a3, a4, a5); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_4_5::base* -NewCallback(T1* obj, R (T2::*member)(P1, P2, P3, P4, A1, A2, A3, A4, A5), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4) { - return new _MemberResultCallback_4_5(obj, member, p1, p2, p3, p4); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_4_5::base* -NewPermanentCallback(T1* obj, - R (T2::*member)(P1, P2, P3, P4, A1, A2, A3, A4, A5), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) { - return new _MemberResultCallback_4_5(obj, member, p1, p2, p3, p4); -} -#endif - -template -class _FunctionResultCallback_4_5 - : public ResultCallback5 { - public: - typedef ResultCallback5 base; - typedef R (*FunctionSignature)(P1, P2, P3, P4, A1, A2, A3, A4, A5); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _FunctionResultCallback_4_5(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : ResultCallback5(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) - CallbackUtils_::FailIsRepeatable("ResultCallback5"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - R result = (*function_)(p1_, p2_, p3_, p4_, a1, a2, a3, a4, a5); - return result; - } else { - R result = (*function_)(p1_, p2_, p3_, p4_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_4_5 - : public Callback5 { - public: - typedef Callback5 base; - typedef void (*FunctionSignature)(P1, P2, P3, P4, A1, A2, A3, A4, A5); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - - public: - inline _FunctionResultCallback_4_5(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) - : Callback5(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback5"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - (*function_)(p1_, p2_, p3_, p4_, a1, a2, a3, a4, a5); - } else { - (*function_)(p1_, p2_, p3_, p4_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_4_5::base* -NewCallback(R (*function)(P1, P2, P3, P4, A1, A2, A3, A4, A5), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4) { - return new _FunctionResultCallback_4_5(function, p1, p2, p3, p4); -} - -template -inline typename _FunctionResultCallback_4_5::base* -NewPermanentCallback(R (*function)(P1, P2, P3, P4, A1, A2, A3, A4, A5), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4) { - return new _FunctionResultCallback_4_5(function, p1, p2, p3, p4); -} - -template ::value>::type> -class _ConstMemberResultCallback_5_5 - : public ResultCallback5 { - public: - typedef ResultCallback5 base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, P5, A1, A2, A3, A4, A5) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _ConstMemberResultCallback_5_5(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : ResultCallback5(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) - CallbackUtils_::FailIsRepeatable("ResultCallback5"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - R result = - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3, a4, a5); - return result; - } else { - R result = - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_5_5< - del, void, T, P1, P2, P3, P4, P5, A1, A2, A3, A4, A5, - typename c_enable_if::value>::type> - : public Callback5 { - public: - typedef Callback5 base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, P5, A1, A2, A3, A4, - A5) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _ConstMemberResultCallback_5_5(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : Callback5(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback5"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3, a4, a5); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_5_5::base* -NewCallback(const T1* obj, - R (T2::*member)(P1, P2, P3, P4, P5, A1, A2, A3, A4, A5) const, - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _ConstMemberResultCallback_5_5(obj, member, p1, p2, - p3, p4, p5); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_5_5::base* -NewPermanentCallback(const T1* obj, - R (T2::*member)(P1, P2, P3, P4, P5, A1, A2, A3, A4, A5) - const, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _ConstMemberResultCallback_5_5(obj, member, p1, - p2, p3, p4, p5); -} -#endif - -template ::value>::type> -class _MemberResultCallback_5_5 - : public ResultCallback5 { - public: - typedef ResultCallback5 base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, P5, A1, A2, A3, A4, A5); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _MemberResultCallback_5_5(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : ResultCallback5(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) - CallbackUtils_::FailIsRepeatable("ResultCallback5"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - R result = - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3, a4, a5); - return result; - } else { - R result = - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_5_5< - del, void, T, P1, P2, P3, P4, P5, A1, A2, A3, A4, A5, - typename c_enable_if::value>::type> - : public Callback5 { - public: - typedef Callback5 base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, P5, A1, A2, A3, A4, A5); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _MemberResultCallback_5_5(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : Callback5(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback5"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3, a4, a5); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_5_5::base* -NewCallback(T1* obj, R (T2::*member)(P1, P2, P3, P4, P5, A1, A2, A3, A4, A5), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _MemberResultCallback_5_5(obj, member, p1, p2, p3, p4, - p5); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_5_5::base* -NewPermanentCallback(T1* obj, - R (T2::*member)(P1, P2, P3, P4, P5, A1, A2, A3, A4, A5), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _MemberResultCallback_5_5(obj, member, p1, p2, p3, p4, - p5); -} -#endif - -template -class _FunctionResultCallback_5_5 - : public ResultCallback5 { - public: - typedef ResultCallback5 base; - typedef R (*FunctionSignature)(P1, P2, P3, P4, P5, A1, A2, A3, A4, A5); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _FunctionResultCallback_5_5(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : ResultCallback5(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) - CallbackUtils_::FailIsRepeatable("ResultCallback5"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - R result = (*function_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3, a4, a5); - return result; - } else { - R result = (*function_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_5_5 : public Callback5 { - public: - typedef Callback5 base; - typedef void (*FunctionSignature)(P1, P2, P3, P4, P5, A1, A2, A3, A4, A5); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - - public: - inline _FunctionResultCallback_5_5(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) - : Callback5(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback5"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - (*function_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3, a4, a5); - } else { - (*function_)(p1_, p2_, p3_, p4_, p5_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_5_5::base* -NewCallback(R (*function)(P1, P2, P3, P4, P5, A1, A2, A3, A4, A5), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _FunctionResultCallback_5_5(function, p1, p2, p3, p4, - p5); -} - -template -inline typename _FunctionResultCallback_5_5::base* -NewPermanentCallback(R (*function)(P1, P2, P3, P4, P5, A1, A2, A3, A4, A5), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5) { - return new _FunctionResultCallback_5_5(function, p1, p2, p3, p4, - p5); -} - -template ::value>::type> -class _ConstMemberResultCallback_6_5 - : public ResultCallback5 { - public: - typedef ResultCallback5 base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, P5, P6, A1, A2, A3, A4, - A5) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _ConstMemberResultCallback_6_5(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : ResultCallback5(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) - CallbackUtils_::FailIsRepeatable("ResultCallback5"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - R result = - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3, a4, a5); - return result; - } else { - R result = - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _ConstMemberResultCallback_6_5< - del, void, T, P1, P2, P3, P4, P5, P6, A1, A2, A3, A4, A5, - typename c_enable_if::value>::type> - : public Callback5 { - public: - typedef Callback5 base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, P5, P6, A1, A2, A3, A4, - A5) const; - - private: - const T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _ConstMemberResultCallback_6_5(const T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : Callback5(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback5"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3, a4, a5); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_6_5::base* -NewCallback(const T1* obj, - R (T2::*member)(P1, P2, P3, P4, P5, P6, A1, A2, A3, A4, A5) const, - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5, typename ConstRef::type p6) { - return new _ConstMemberResultCallback_6_5( - obj, member, p1, p2, p3, p4, p5, p6); -} -#endif - -#ifndef SWIG -template -inline typename _ConstMemberResultCallback_6_5::base* -NewPermanentCallback( - const T1* obj, - R (T2::*member)(P1, P2, P3, P4, P5, P6, A1, A2, A3, A4, A5) const, - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5, typename ConstRef::type p6) { - return new _ConstMemberResultCallback_6_5( - obj, member, p1, p2, p3, p4, p5, p6); -} -#endif - -template ::value>::type> -class _MemberResultCallback_6_5 - : public ResultCallback5 { - public: - typedef ResultCallback5 base; - typedef R (T::*MemberSignature)(P1, P2, P3, P4, P5, P6, A1, A2, A3, A4, A5); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _MemberResultCallback_6_5(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : ResultCallback5(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) - CallbackUtils_::FailIsRepeatable("ResultCallback5"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - R result = - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3, a4, a5); - return result; - } else { - R result = - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - return result; - } - } -}; - -template -class _MemberResultCallback_6_5< - del, void, T, P1, P2, P3, P4, P5, P6, A1, A2, A3, A4, A5, - typename c_enable_if::value>::type> - : public Callback5 { - public: - typedef Callback5 base; - typedef void (T::*MemberSignature)(P1, P2, P3, P4, P5, P6, A1, A2, A3, A4, - A5); - - private: - T* object_; - MemberSignature member_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _MemberResultCallback_6_5(T* object, MemberSignature member, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : Callback5(), - object_(object), - member_(member), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback5"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3, a4, a5); - } else { - (object_->*member_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - member_ = NULL; - delete this; - } - } -}; - -#ifndef SWIG -template -inline typename _MemberResultCallback_6_5::base* -NewCallback(T1* obj, - R (T2::*member)(P1, P2, P3, P4, P5, P6, A1, A2, A3, A4, A5), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5, typename ConstRef::type p6) { - return new _MemberResultCallback_6_5(obj, member, p1, p2, p3, - p4, p5, p6); -} -#endif - -#ifndef SWIG -template -inline typename _MemberResultCallback_6_5::base* -NewPermanentCallback( - T1* obj, R (T2::*member)(P1, P2, P3, P4, P5, P6, A1, A2, A3, A4, A5), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5, typename ConstRef::type p6) { - return new _MemberResultCallback_6_5(obj, member, p1, p2, p3, - p4, p5, p6); -} -#endif - -template -class _FunctionResultCallback_6_5 - : public ResultCallback5 { - public: - typedef ResultCallback5 base; - typedef R (*FunctionSignature)(P1, P2, P3, P4, P5, P6, A1, A2, A3, A4, A5); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _FunctionResultCallback_6_5(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : ResultCallback5(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) - CallbackUtils_::FailIsRepeatable("ResultCallback5"); - } - - virtual R Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - R result = (*function_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3, a4, a5); - return result; - } else { - R result = (*function_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - return result; - } - } -}; - -template -class _FunctionResultCallback_6_5 - : public Callback5 { - public: - typedef Callback5 base; - typedef void (*FunctionSignature)(P1, P2, P3, P4, P5, P6, A1, A2, A3, A4, A5); - - private: - FunctionSignature function_; - typename c_remove_reference::type p1_; - typename c_remove_reference::type p2_; - typename c_remove_reference::type p3_; - typename c_remove_reference::type p4_; - typename c_remove_reference::type p5_; - typename c_remove_reference::type p6_; - - public: - inline _FunctionResultCallback_6_5(FunctionSignature function, - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) - : Callback5(), - function_(function), - p1_(p1), - p2_(p2), - p3_(p3), - p4_(p4), - p5_(p5), - p6_(p6) {} - - virtual bool IsRepeatable() const { return !del; } - - virtual void CheckIsRepeatable() const { - if (del) CallbackUtils_::FailIsRepeatable("Callback5"); - } - - virtual void Run(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - if (!del) { - (*function_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3, a4, a5); - } else { - (*function_)(p1_, p2_, p3_, p4_, p5_, p6_, a1, a2, a3, a4, a5); - // zero out the pointer to ensure segfault if used again - function_ = NULL; - delete this; - } - } -}; - -template -inline typename _FunctionResultCallback_6_5::base* -NewCallback(R (*function)(P1, P2, P3, P4, P5, P6, A1, A2, A3, A4, A5), - typename ConstRef::type p1, typename ConstRef::type p2, - typename ConstRef::type p3, typename ConstRef::type p4, - typename ConstRef::type p5, typename ConstRef::type p6) { - return new _FunctionResultCallback_6_5(function, p1, p2, p3, - p4, p5, p6); -} - -template -inline typename _FunctionResultCallback_6_5::base* -NewPermanentCallback(R (*function)(P1, P2, P3, P4, P5, P6, A1, A2, A3, A4, A5), - typename ConstRef::type p1, - typename ConstRef::type p2, - typename ConstRef::type p3, - typename ConstRef::type p4, - typename ConstRef::type p5, - typename ConstRef::type p6) { - return new _FunctionResultCallback_6_5(function, p1, p2, p3, - p4, p5, p6); -} - -#endif // OR_TOOLS_BASE_CALLBACK_H_