1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef PPAPI_THUNK_THUNK_H_
6 #define PPAPI_THUNK_THUNK_H_
8 #include "ppapi/thunk/ppapi_thunk_export.h"
10 // Declares a getter for the interface thunk of the form:
12 // const PPB_Foo* ppapi::thunk::GetPPB_Foo_Thunk();
14 #define IFACE(api_name, interface_name, InterfaceType) \
15 struct InterfaceType; \
16 namespace ppapi { namespace thunk { \
17 PPAPI_THUNK_EXPORT const InterfaceType* Get##InterfaceType##_Thunk(); \
19 #define PROXIED_IFACE IFACE
20 #define UNPROXIED_IFACE IFACE
22 #include "ppapi/thunk/interfaces_ppb_private.h"
23 #include "ppapi/thunk/interfaces_ppb_public_stable.h"
24 #include "ppapi/thunk/interfaces_ppb_public_dev.h"
26 #undef UNPROXIED_IFACE
30 struct PPB_AudioTrusted
;
31 struct PPB_BrokerTrusted
;
32 struct PPB_BufferTrusted
;
33 struct PPB_Context3DTrusted_Dev
;
34 struct PPB_FileIOTrusted
;
35 struct PPB_Flash_Menu
;
36 struct PPB_Flash_NetConnector
;
37 struct PPB_Flash_TCPSocket
;
38 struct PPB_Flash_UDPSocket
;
39 struct PPB_Graphics3D
;
40 struct PPB_Graphics3DTrusted
;
41 struct PPB_ImageDataTrusted
;
42 struct PPB_Instance_Private
;
43 struct PPB_QueryPolicy_Dev
;
44 struct PPB_URLLoaderTrusted
;
46 typedef PPB_Instance PPB_Instance_1_0
;
51 // Old-style thunk getters. Only put trusted/private stuff here (it hasn't
52 // yet been converted to the new system). Otherwise, add the declaration to
53 // the appropriate interfaces_*.h file.
54 PPAPI_THUNK_EXPORT
const PPB_AudioTrusted
* GetPPB_AudioTrusted_Thunk();
55 PPAPI_THUNK_EXPORT
const PPB_BrokerTrusted
* GetPPB_Broker_Thunk();
56 PPAPI_THUNK_EXPORT
const PPB_BufferTrusted
* GetPPB_BufferTrusted_Thunk();
57 PPAPI_THUNK_EXPORT
const PPB_Context3DTrusted_Dev
*
58 GetPPB_Context3DTrusted_Thunk();
59 PPAPI_THUNK_EXPORT
const PPB_FileIOTrusted
* GetPPB_FileIOTrusted_Thunk();
60 PPAPI_THUNK_EXPORT
const PPB_Flash_Menu
* GetPPB_Flash_Menu_Thunk();
61 PPAPI_THUNK_EXPORT
const PPB_Flash_NetConnector
*
62 GetPPB_Flash_NetConnector_Thunk();
63 PPAPI_THUNK_EXPORT
const PPB_Flash_TCPSocket
* GetPPB_Flash_TCPSocket_Thunk();
64 PPAPI_THUNK_EXPORT
const PPB_Flash_UDPSocket
* GetPPB_Flash_UDPSocket_Thunk();
65 PPAPI_THUNK_EXPORT
const PPB_Graphics3DTrusted
*
66 GetPPB_Graphics3DTrusted_Thunk();
67 PPAPI_THUNK_EXPORT
const PPB_ImageDataTrusted
* GetPPB_ImageDataTrusted_Thunk();
68 PPAPI_THUNK_EXPORT
const PPB_Instance_Private
* GetPPB_Instance_Private_Thunk();
69 PPAPI_THUNK_EXPORT
const PPB_QueryPolicy_Dev
* GetPPB_QueryPolicy_Thunk();
70 PPAPI_THUNK_EXPORT
const PPB_URLLoaderTrusted
* GetPPB_URLLoaderTrusted_Thunk();
75 #endif // PPAPI_THUNK_THUNK_H_