blob: 250f472ca817c7b32560c28efa0dfe5dd723bf03 [file] [log] [blame]
[email protected]054ac7542011-02-27 01:25:591// This file was GENERATED by command:
2// pump.py bind_internal_win.h.pump
3// DO NOT EDIT BY HAND!!!
4
5
[email protected]c18b1052011-03-24 02:02:176
[email protected]054ac7542011-02-27 01:25:597// Copyright (c) 2011 The Chromium Authors. All rights reserved.
8// Use of this source code is governed by a BSD-style license that can be
9// found in the LICENSE file.
10
11// Specializations of FunctionTraits<> for Windows specific calling
12// conventions. Please see base/bind_internal.h for more info.
13
14#ifndef BASE_BIND_INTERNAL_WIN_H_
15#define BASE_BIND_INTERNAL_WIN_H_
16#pragma once
17
[email protected]b224f792011-04-20 16:02:2318// In the x64 architecture in Windows, __fastcall, __stdcall, etc, are all
19// the same as __cdecl which would turn the following specializations into
20// multiple definitions.
21#if !defined(ARCH_CPU_X86_64)
22
[email protected]054ac7542011-02-27 01:25:5923namespace base {
24namespace internal {
25
26template <typename Sig>
27struct FunctionTraits;
28
29// __stdcall Function: Arity 0.
30template <typename R>
31struct FunctionTraits<R(__stdcall *)()> {
32 typedef R (*NormalizedSig)();
33 typedef false_type IsMethod;
[email protected]93540582011-05-16 22:35:1434
35 typedef R Return;
[email protected]054ac7542011-02-27 01:25:5936};
37
38// __fastcall Function: Arity 0.
39template <typename R>
40struct FunctionTraits<R(__fastcall *)()> {
41 typedef R (*NormalizedSig)();
42 typedef false_type IsMethod;
[email protected]93540582011-05-16 22:35:1443
44 typedef R Return;
[email protected]054ac7542011-02-27 01:25:5945};
46
47// __stdcall Function: Arity 1.
48template <typename R, typename X1>
49struct FunctionTraits<R(__stdcall *)(X1)> {
50 typedef R (*NormalizedSig)(X1);
51 typedef false_type IsMethod;
[email protected]93540582011-05-16 22:35:1452
53 typedef R Return;
54
[email protected]c18b1052011-03-24 02:02:1755 // Target type for each bound parameter.
56 typedef X1 B1;
[email protected]054ac7542011-02-27 01:25:5957};
58
59// __fastcall Function: Arity 1.
60template <typename R, typename X1>
61struct FunctionTraits<R(__fastcall *)(X1)> {
62 typedef R (*NormalizedSig)(X1);
63 typedef false_type IsMethod;
[email protected]93540582011-05-16 22:35:1464
65 typedef R Return;
66
[email protected]c18b1052011-03-24 02:02:1767 // Target type for each bound parameter.
68 typedef X1 B1;
[email protected]054ac7542011-02-27 01:25:5969};
70
71// __stdcall Function: Arity 2.
72template <typename R, typename X1, typename X2>
73struct FunctionTraits<R(__stdcall *)(X1, X2)> {
74 typedef R (*NormalizedSig)(X1, X2);
75 typedef false_type IsMethod;
[email protected]93540582011-05-16 22:35:1476
77 typedef R Return;
78
[email protected]c18b1052011-03-24 02:02:1779 // Target type for each bound parameter.
80 typedef X1 B1;
81 typedef X2 B2;
[email protected]054ac7542011-02-27 01:25:5982};
83
84// __fastcall Function: Arity 2.
85template <typename R, typename X1, typename X2>
86struct FunctionTraits<R(__fastcall *)(X1, X2)> {
87 typedef R (*NormalizedSig)(X1, X2);
88 typedef false_type IsMethod;
[email protected]93540582011-05-16 22:35:1489
90 typedef R Return;
91
[email protected]c18b1052011-03-24 02:02:1792 // Target type for each bound parameter.
93 typedef X1 B1;
94 typedef X2 B2;
[email protected]054ac7542011-02-27 01:25:5995};
96
97// __stdcall Function: Arity 3.
98template <typename R, typename X1, typename X2, typename X3>
99struct FunctionTraits<R(__stdcall *)(X1, X2, X3)> {
100 typedef R (*NormalizedSig)(X1, X2, X3);
101 typedef false_type IsMethod;
[email protected]93540582011-05-16 22:35:14102
103 typedef R Return;
104
[email protected]c18b1052011-03-24 02:02:17105 // Target type for each bound parameter.
106 typedef X1 B1;
107 typedef X2 B2;
108 typedef X3 B3;
[email protected]054ac7542011-02-27 01:25:59109};
110
111// __fastcall Function: Arity 3.
112template <typename R, typename X1, typename X2, typename X3>
113struct FunctionTraits<R(__fastcall *)(X1, X2, X3)> {
114 typedef R (*NormalizedSig)(X1, X2, X3);
115 typedef false_type IsMethod;
[email protected]93540582011-05-16 22:35:14116
117 typedef R Return;
118
[email protected]c18b1052011-03-24 02:02:17119 // Target type for each bound parameter.
120 typedef X1 B1;
121 typedef X2 B2;
122 typedef X3 B3;
[email protected]054ac7542011-02-27 01:25:59123};
124
125// __stdcall Function: Arity 4.
126template <typename R, typename X1, typename X2, typename X3, typename X4>
127struct FunctionTraits<R(__stdcall *)(X1, X2, X3, X4)> {
128 typedef R (*NormalizedSig)(X1, X2, X3, X4);
129 typedef false_type IsMethod;
[email protected]93540582011-05-16 22:35:14130
131 typedef R Return;
132
[email protected]c18b1052011-03-24 02:02:17133 // Target type for each bound parameter.
134 typedef X1 B1;
135 typedef X2 B2;
136 typedef X3 B3;
137 typedef X4 B4;
[email protected]054ac7542011-02-27 01:25:59138};
139
140// __fastcall Function: Arity 4.
141template <typename R, typename X1, typename X2, typename X3, typename X4>
142struct FunctionTraits<R(__fastcall *)(X1, X2, X3, X4)> {
143 typedef R (*NormalizedSig)(X1, X2, X3, X4);
144 typedef false_type IsMethod;
[email protected]93540582011-05-16 22:35:14145
146 typedef R Return;
147
[email protected]c18b1052011-03-24 02:02:17148 // Target type for each bound parameter.
149 typedef X1 B1;
150 typedef X2 B2;
151 typedef X3 B3;
152 typedef X4 B4;
[email protected]054ac7542011-02-27 01:25:59153};
154
155// __stdcall Function: Arity 5.
156template <typename R, typename X1, typename X2, typename X3, typename X4,
157 typename X5>
158struct FunctionTraits<R(__stdcall *)(X1, X2, X3, X4, X5)> {
159 typedef R (*NormalizedSig)(X1, X2, X3, X4, X5);
160 typedef false_type IsMethod;
[email protected]93540582011-05-16 22:35:14161
162 typedef R Return;
163
[email protected]c18b1052011-03-24 02:02:17164 // Target type for each bound parameter.
165 typedef X1 B1;
166 typedef X2 B2;
167 typedef X3 B3;
168 typedef X4 B4;
169 typedef X5 B5;
[email protected]054ac7542011-02-27 01:25:59170};
171
172// __fastcall Function: Arity 5.
173template <typename R, typename X1, typename X2, typename X3, typename X4,
174 typename X5>
175struct FunctionTraits<R(__fastcall *)(X1, X2, X3, X4, X5)> {
176 typedef R (*NormalizedSig)(X1, X2, X3, X4, X5);
177 typedef false_type IsMethod;
[email protected]93540582011-05-16 22:35:14178
179 typedef R Return;
180
[email protected]c18b1052011-03-24 02:02:17181 // Target type for each bound parameter.
182 typedef X1 B1;
183 typedef X2 B2;
184 typedef X3 B3;
185 typedef X4 B4;
186 typedef X5 B5;
[email protected]054ac7542011-02-27 01:25:59187};
188
189// __stdcall Function: Arity 6.
190template <typename R, typename X1, typename X2, typename X3, typename X4,
191 typename X5, typename X6>
192struct FunctionTraits<R(__stdcall *)(X1, X2, X3, X4, X5, X6)> {
193 typedef R (*NormalizedSig)(X1, X2, X3, X4, X5, X6);
194 typedef false_type IsMethod;
[email protected]93540582011-05-16 22:35:14195
196 typedef R Return;
197
[email protected]c18b1052011-03-24 02:02:17198 // Target type for each bound parameter.
199 typedef X1 B1;
200 typedef X2 B2;
201 typedef X3 B3;
202 typedef X4 B4;
203 typedef X5 B5;
204 typedef X6 B6;
[email protected]054ac7542011-02-27 01:25:59205};
206
207// __fastcall Function: Arity 6.
208template <typename R, typename X1, typename X2, typename X3, typename X4,
209 typename X5, typename X6>
210struct FunctionTraits<R(__fastcall *)(X1, X2, X3, X4, X5, X6)> {
211 typedef R (*NormalizedSig)(X1, X2, X3, X4, X5, X6);
212 typedef false_type IsMethod;
[email protected]93540582011-05-16 22:35:14213
214 typedef R Return;
215
[email protected]c18b1052011-03-24 02:02:17216 // Target type for each bound parameter.
217 typedef X1 B1;
218 typedef X2 B2;
219 typedef X3 B3;
220 typedef X4 B4;
221 typedef X5 B5;
222 typedef X6 B6;
[email protected]054ac7542011-02-27 01:25:59223};
224
225} // namespace internal
226} // namespace base
227
[email protected]b224f792011-04-20 16:02:23228#endif // !defined(ARCH_CPU_X86_64)
229
[email protected]054ac7542011-02-27 01:25:59230#endif // BASE_BIND_INTERNAL_WIN_H_