// This file was GENERATED by command: // pump.py bind_internal_win.h.pump // DO NOT EDIT BY HAND!!! // Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Specializations of RunnableAdapter<> for Windows specific calling // conventions. Please see base/bind_internal.h for more info. #ifndef BASE_BIND_INTERNAL_WIN_H_ #define BASE_BIND_INTERNAL_WIN_H_ // In the x64 architecture in Windows, __fastcall, __stdcall, etc, are all // the same as __cdecl which would turn the following specializations into // multiple definitions. #if !defined(ARCH_CPU_X86_64) namespace base { namespace internal { template class RunnableAdapter; // __stdcall Function: Arity 0. template class RunnableAdapter { public: typedef R (RunType)(); explicit RunnableAdapter(R(__stdcall *function)()) : function_(function) { } R Run() { return function_(); } private: R (__stdcall *function_)(); }; // __fastcall Function: Arity 0. template class RunnableAdapter { public: typedef R (RunType)(); explicit RunnableAdapter(R(__fastcall *function)()) : function_(function) { } R Run() { return function_(); } private: R (__fastcall *function_)(); }; // __stdcall Function: Arity 1. template class RunnableAdapter { public: typedef R (RunType)(A1); explicit RunnableAdapter(R(__stdcall *function)(A1)) : function_(function) { } R Run(typename CallbackParamTraits::ForwardType a1) { return function_(a1); } private: R (__stdcall *function_)(A1); }; // __fastcall Function: Arity 1. template class RunnableAdapter { public: typedef R (RunType)(A1); explicit RunnableAdapter(R(__fastcall *function)(A1)) : function_(function) { } R Run(typename CallbackParamTraits::ForwardType a1) { return function_(a1); } private: R (__fastcall *function_)(A1); }; // __stdcall Function: Arity 2. template class RunnableAdapter { public: typedef R (RunType)(A1, A2); explicit RunnableAdapter(R(__stdcall *function)(A1, A2)) : function_(function) { } R Run(typename CallbackParamTraits::ForwardType a1, typename CallbackParamTraits::ForwardType a2) { return function_(a1, a2); } private: R (__stdcall *function_)(A1, A2); }; // __fastcall Function: Arity 2. template class RunnableAdapter { public: typedef R (RunType)(A1, A2); explicit RunnableAdapter(R(__fastcall *function)(A1, A2)) : function_(function) { } R Run(typename CallbackParamTraits::ForwardType a1, typename CallbackParamTraits::ForwardType a2) { return function_(a1, a2); } private: R (__fastcall *function_)(A1, A2); }; // __stdcall Function: Arity 3. template class RunnableAdapter { public: typedef R (RunType)(A1, A2, A3); explicit RunnableAdapter(R(__stdcall *function)(A1, A2, A3)) : function_(function) { } R Run(typename CallbackParamTraits::ForwardType a1, typename CallbackParamTraits::ForwardType a2, typename CallbackParamTraits::ForwardType a3) { return function_(a1, a2, a3); } private: R (__stdcall *function_)(A1, A2, A3); }; // __fastcall Function: Arity 3. template class RunnableAdapter { public: typedef R (RunType)(A1, A2, A3); explicit RunnableAdapter(R(__fastcall *function)(A1, A2, A3)) : function_(function) { } R Run(typename CallbackParamTraits::ForwardType a1, typename CallbackParamTraits::ForwardType a2, typename CallbackParamTraits::ForwardType a3) { return function_(a1, a2, a3); } private: R (__fastcall *function_)(A1, A2, A3); }; // __stdcall Function: Arity 4. template class RunnableAdapter { public: typedef R (RunType)(A1, A2, A3, A4); explicit RunnableAdapter(R(__stdcall *function)(A1, A2, A3, A4)) : function_(function) { } R Run(typename CallbackParamTraits::ForwardType a1, typename CallbackParamTraits::ForwardType a2, typename CallbackParamTraits::ForwardType a3, typename CallbackParamTraits::ForwardType a4) { return function_(a1, a2, a3, a4); } private: R (__stdcall *function_)(A1, A2, A3, A4); }; // __fastcall Function: Arity 4. template class RunnableAdapter { public: typedef R (RunType)(A1, A2, A3, A4); explicit RunnableAdapter(R(__fastcall *function)(A1, A2, A3, A4)) : function_(function) { } R Run(typename CallbackParamTraits::ForwardType a1, typename CallbackParamTraits::ForwardType a2, typename CallbackParamTraits::ForwardType a3, typename CallbackParamTraits::ForwardType a4) { return function_(a1, a2, a3, a4); } private: R (__fastcall *function_)(A1, A2, A3, A4); }; // __stdcall Function: Arity 5. template class RunnableAdapter { public: typedef R (RunType)(A1, A2, A3, A4, A5); explicit RunnableAdapter(R(__stdcall *function)(A1, A2, A3, A4, A5)) : function_(function) { } R Run(typename CallbackParamTraits::ForwardType a1, typename CallbackParamTraits::ForwardType a2, typename CallbackParamTraits::ForwardType a3, typename CallbackParamTraits::ForwardType a4, typename CallbackParamTraits::ForwardType a5) { return function_(a1, a2, a3, a4, a5); } private: R (__stdcall *function_)(A1, A2, A3, A4, A5); }; // __fastcall Function: Arity 5. template class RunnableAdapter { public: typedef R (RunType)(A1, A2, A3, A4, A5); explicit RunnableAdapter(R(__fastcall *function)(A1, A2, A3, A4, A5)) : function_(function) { } R Run(typename CallbackParamTraits::ForwardType a1, typename CallbackParamTraits::ForwardType a2, typename CallbackParamTraits::ForwardType a3, typename CallbackParamTraits::ForwardType a4, typename CallbackParamTraits::ForwardType a5) { return function_(a1, a2, a3, a4, a5); } private: R (__fastcall *function_)(A1, A2, A3, A4, A5); }; // __stdcall Function: Arity 6. template class RunnableAdapter { public: typedef R (RunType)(A1, A2, A3, A4, A5, A6); explicit RunnableAdapter(R(__stdcall *function)(A1, A2, A3, A4, A5, A6)) : function_(function) { } R Run(typename CallbackParamTraits::ForwardType a1, typename CallbackParamTraits::ForwardType a2, typename CallbackParamTraits::ForwardType a3, typename CallbackParamTraits::ForwardType a4, typename CallbackParamTraits::ForwardType a5, typename CallbackParamTraits::ForwardType a6) { return function_(a1, a2, a3, a4, a5, a6); } private: R (__stdcall *function_)(A1, A2, A3, A4, A5, A6); }; // __fastcall Function: Arity 6. template class RunnableAdapter { public: typedef R (RunType)(A1, A2, A3, A4, A5, A6); explicit RunnableAdapter(R(__fastcall *function)(A1, A2, A3, A4, A5, A6)) : function_(function) { } R Run(typename CallbackParamTraits::ForwardType a1, typename CallbackParamTraits::ForwardType a2, typename CallbackParamTraits::ForwardType a3, typename CallbackParamTraits::ForwardType a4, typename CallbackParamTraits::ForwardType a5, typename CallbackParamTraits::ForwardType a6) { return function_(a1, a2, a3, a4, a5, a6); } private: R (__fastcall *function_)(A1, A2, A3, A4, A5, A6); }; // __stdcall Function: Arity 7. template class RunnableAdapter { public: typedef R (RunType)(A1, A2, A3, A4, A5, A6, A7); explicit RunnableAdapter(R(__stdcall *function)(A1, A2, A3, A4, A5, A6, A7)) : function_(function) { } R Run(typename CallbackParamTraits::ForwardType a1, typename CallbackParamTraits::ForwardType a2, typename CallbackParamTraits::ForwardType a3, typename CallbackParamTraits::ForwardType a4, typename CallbackParamTraits::ForwardType a5, typename CallbackParamTraits::ForwardType a6, typename CallbackParamTraits::ForwardType a7) { return function_(a1, a2, a3, a4, a5, a6, a7); } private: R (__stdcall *function_)(A1, A2, A3, A4, A5, A6, A7); }; // __fastcall Function: Arity 7. template class RunnableAdapter { public: typedef R (RunType)(A1, A2, A3, A4, A5, A6, A7); explicit RunnableAdapter(R(__fastcall *function)(A1, A2, A3, A4, A5, A6, A7)) : function_(function) { } R Run(typename CallbackParamTraits::ForwardType a1, typename CallbackParamTraits::ForwardType a2, typename CallbackParamTraits::ForwardType a3, typename CallbackParamTraits::ForwardType a4, typename CallbackParamTraits::ForwardType a5, typename CallbackParamTraits::ForwardType a6, typename CallbackParamTraits::ForwardType a7) { return function_(a1, a2, a3, a4, a5, a6, a7); } private: R (__fastcall *function_)(A1, A2, A3, A4, A5, A6, A7); }; } // namespace internal } // namespace base #endif // !defined(ARCH_CPU_X86_64) #endif // BASE_BIND_INTERNAL_WIN_H_