• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // This file was GENERATED by command:
2 //     pump.py bind_internal_win.h.pump
3 // DO NOT EDIT BY HAND!!!
4 
5 
6 
7 // 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 
18 namespace base {
19 namespace internal {
20 
21 template <typename Sig>
22 struct FunctionTraits;
23 
24 // __stdcall Function: Arity 0.
25 template <typename R>
26 struct FunctionTraits<R(__stdcall *)()> {
27   typedef R (*NormalizedSig)();
28   typedef false_type IsMethod;
29 };
30 
31 // __fastcall Function: Arity 0.
32 template <typename R>
33 struct FunctionTraits<R(__fastcall *)()> {
34   typedef R (*NormalizedSig)();
35   typedef false_type IsMethod;
36 };
37 
38 // __stdcall Function: Arity 1.
39 template <typename R, typename X1>
40 struct FunctionTraits<R(__stdcall *)(X1)> {
41   typedef R (*NormalizedSig)(X1);
42   typedef false_type IsMethod;
43   // Target type for each bound parameter.
44   typedef X1 B1;
45 };
46 
47 // __fastcall Function: Arity 1.
48 template <typename R, typename X1>
49 struct FunctionTraits<R(__fastcall *)(X1)> {
50   typedef R (*NormalizedSig)(X1);
51   typedef false_type IsMethod;
52   // Target type for each bound parameter.
53   typedef X1 B1;
54 };
55 
56 // __stdcall Function: Arity 2.
57 template <typename R, typename X1, typename X2>
58 struct FunctionTraits<R(__stdcall *)(X1, X2)> {
59   typedef R (*NormalizedSig)(X1, X2);
60   typedef false_type IsMethod;
61   // Target type for each bound parameter.
62   typedef X1 B1;
63   typedef X2 B2;
64 };
65 
66 // __fastcall Function: Arity 2.
67 template <typename R, typename X1, typename X2>
68 struct FunctionTraits<R(__fastcall *)(X1, X2)> {
69   typedef R (*NormalizedSig)(X1, X2);
70   typedef false_type IsMethod;
71   // Target type for each bound parameter.
72   typedef X1 B1;
73   typedef X2 B2;
74 };
75 
76 // __stdcall Function: Arity 3.
77 template <typename R, typename X1, typename X2, typename X3>
78 struct FunctionTraits<R(__stdcall *)(X1, X2, X3)> {
79   typedef R (*NormalizedSig)(X1, X2, X3);
80   typedef false_type IsMethod;
81   // Target type for each bound parameter.
82   typedef X1 B1;
83   typedef X2 B2;
84   typedef X3 B3;
85 };
86 
87 // __fastcall Function: Arity 3.
88 template <typename R, typename X1, typename X2, typename X3>
89 struct FunctionTraits<R(__fastcall *)(X1, X2, X3)> {
90   typedef R (*NormalizedSig)(X1, X2, X3);
91   typedef false_type IsMethod;
92   // Target type for each bound parameter.
93   typedef X1 B1;
94   typedef X2 B2;
95   typedef X3 B3;
96 };
97 
98 // __stdcall Function: Arity 4.
99 template <typename R, typename X1, typename X2, typename X3, typename X4>
100 struct FunctionTraits<R(__stdcall *)(X1, X2, X3, X4)> {
101   typedef R (*NormalizedSig)(X1, X2, X3, X4);
102   typedef false_type IsMethod;
103   // Target type for each bound parameter.
104   typedef X1 B1;
105   typedef X2 B2;
106   typedef X3 B3;
107   typedef X4 B4;
108 };
109 
110 // __fastcall Function: Arity 4.
111 template <typename R, typename X1, typename X2, typename X3, typename X4>
112 struct FunctionTraits<R(__fastcall *)(X1, X2, X3, X4)> {
113   typedef R (*NormalizedSig)(X1, X2, X3, X4);
114   typedef false_type IsMethod;
115   // Target type for each bound parameter.
116   typedef X1 B1;
117   typedef X2 B2;
118   typedef X3 B3;
119   typedef X4 B4;
120 };
121 
122 // __stdcall Function: Arity 5.
123 template <typename R, typename X1, typename X2, typename X3, typename X4,
124     typename X5>
125 struct FunctionTraits<R(__stdcall *)(X1, X2, X3, X4, X5)> {
126   typedef R (*NormalizedSig)(X1, X2, X3, X4, X5);
127   typedef false_type IsMethod;
128   // Target type for each bound parameter.
129   typedef X1 B1;
130   typedef X2 B2;
131   typedef X3 B3;
132   typedef X4 B4;
133   typedef X5 B5;
134 };
135 
136 // __fastcall Function: Arity 5.
137 template <typename R, typename X1, typename X2, typename X3, typename X4,
138     typename X5>
139 struct FunctionTraits<R(__fastcall *)(X1, X2, X3, X4, X5)> {
140   typedef R (*NormalizedSig)(X1, X2, X3, X4, X5);
141   typedef false_type IsMethod;
142   // Target type for each bound parameter.
143   typedef X1 B1;
144   typedef X2 B2;
145   typedef X3 B3;
146   typedef X4 B4;
147   typedef X5 B5;
148 };
149 
150 // __stdcall Function: Arity 6.
151 template <typename R, typename X1, typename X2, typename X3, typename X4,
152     typename X5, typename X6>
153 struct FunctionTraits<R(__stdcall *)(X1, X2, X3, X4, X5, X6)> {
154   typedef R (*NormalizedSig)(X1, X2, X3, X4, X5, X6);
155   typedef false_type IsMethod;
156   // Target type for each bound parameter.
157   typedef X1 B1;
158   typedef X2 B2;
159   typedef X3 B3;
160   typedef X4 B4;
161   typedef X5 B5;
162   typedef X6 B6;
163 };
164 
165 // __fastcall Function: Arity 6.
166 template <typename R, typename X1, typename X2, typename X3, typename X4,
167     typename X5, typename X6>
168 struct FunctionTraits<R(__fastcall *)(X1, X2, X3, X4, X5, X6)> {
169   typedef R (*NormalizedSig)(X1, X2, X3, X4, X5, X6);
170   typedef false_type IsMethod;
171   // Target type for each bound parameter.
172   typedef X1 B1;
173   typedef X2 B2;
174   typedef X3 B3;
175   typedef X4 B4;
176   typedef X5 B5;
177   typedef X6 B6;
178 };
179 
180 }  // namespace internal
181 }  // namespace base
182 
183 #endif  // BASE_BIND_INTERNAL_WIN_H_
184