Home | History | Annotate | Download | only in base
      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