// 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_ #pragma once // 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); }; // __stdcall Function: Arity 8. template class RunnableAdapter { public: typedef R (RunType)(A1, A2, A3, A4, A5, A6, A7, A8); explicit RunnableAdapter(R(__stdcall *function)(A1, A2, A3, A4, A5, A6, A7, A8)) : 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, typename CallbackParamTraits::ForwardType a8) { return function_(a1, a2, a3, a4, a5, a6, a7, a8); } private: R (__stdcall *function_)(A1, A2, A3, A4, A5, A6, A7, A8); }; // __fastcall Function: Arity 8. template class RunnableAdapter { public: typedef R (RunType)(A1, A2, A3, A4, A5, A6, A7, A8); explicit RunnableAdapter(R(__fastcall *function)(A1, A2, A3, A4, A5, A6, A7, A8)) : 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, typename CallbackParamTraits::ForwardType a8) { return function_(a1, a2, a3, a4, a5, a6, a7, a8); } private: R (__fastcall *function_)(A1, A2, A3, A4, A5, A6, A7, A8); }; // __stdcall Function: Arity 9. template class RunnableAdapter { public: typedef R (RunType)(A1, A2, A3, A4, A5, A6, A7, A8, A9); explicit RunnableAdapter(R(__stdcall *function)(A1, A2, A3, A4, A5, A6, A7, A8, A9)) : 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, typename CallbackParamTraits::ForwardType a8, typename CallbackParamTraits::ForwardType a9) { return function_(a1, a2, a3, a4, a5, a6, a7, a8, a9); } private: R (__stdcall *function_)(A1, A2, A3, A4, A5, A6, A7, A8, A9); }; // __fastcall Function: Arity 9. template class RunnableAdapter { public: typedef R (RunType)(A1, A2, A3, A4, A5, A6, A7, A8, A9); explicit RunnableAdapter(R(__fastcall *function)(A1, A2, A3, A4, A5, A6, A7, A8, A9)) : 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, typename CallbackParamTraits::ForwardType a8, typename CallbackParamTraits::ForwardType a9) { return function_(a1, a2, a3, a4, a5, a6, a7, a8, a9); } private: R (__fastcall *function_)(A1, A2, A3, A4, A5, A6, A7, A8, A9); }; // __stdcall Function: Arity 10. template class RunnableAdapter { public: typedef R (RunType)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10); explicit RunnableAdapter(R(__stdcall *function)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)) : 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, typename CallbackParamTraits::ForwardType a8, typename CallbackParamTraits::ForwardType a9, typename CallbackParamTraits::ForwardType a10) { return function_(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); } private: R (__stdcall *function_)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10); }; // __fastcall Function: Arity 10. template class RunnableAdapter { public: typedef R (RunType)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10); explicit RunnableAdapter(R(__fastcall *function)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)) : 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, typename CallbackParamTraits::ForwardType a8, typename CallbackParamTraits::ForwardType a9, typename CallbackParamTraits::ForwardType a10) { return function_(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); } private: R (__fastcall *function_)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10); }; // __stdcall Function: Arity 11. template class RunnableAdapter { public: typedef R (RunType)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11); explicit RunnableAdapter(R(__stdcall *function)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11)) : 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, typename CallbackParamTraits::ForwardType a8, typename CallbackParamTraits::ForwardType a9, typename CallbackParamTraits::ForwardType a10, typename CallbackParamTraits::ForwardType a11) { return function_(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); } private: R (__stdcall *function_)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11); }; // __fastcall Function: Arity 11. template class RunnableAdapter { public: typedef R (RunType)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11); explicit RunnableAdapter(R(__fastcall *function)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11)) : 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, typename CallbackParamTraits::ForwardType a8, typename CallbackParamTraits::ForwardType a9, typename CallbackParamTraits::ForwardType a10, typename CallbackParamTraits::ForwardType a11) { return function_(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); } private: R (__fastcall *function_)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11); }; } // namespace internal } // namespace base #endif // !defined(ARCH_CPU_X86_64) #endif // BASE_BIND_INTERNAL_WIN_H_