- add sources.
[platform/framework/web/crosswalk.git] / src / native_client_sdk / src / libraries / nacl_io / pepper / all_interfaces.h
1 // Copyright (c) 2012 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.
4
5
6 /* Given an interface like this:
7  *
8  *   struct PPB_Frob_1_1 {
9  *     void (*Flange)(int32_t param1, char* param2);
10  *     int32_t (*Shlep)(PP_CompletionCallback);
11  *   };
12  *
13  * Write a set of macros like this:
14  *
15  *   BEGIN_INTERFACE(FrobInterface, PPB_Frob_1_1, PPB_FROB_INTERFACE_1_1)
16  *     METHOD2(FrobInterface, void, Flange, int32_t, char*)
17  *     METHOD1(FrobInterface, int32_t, Shlep, PP_CompletionCallback)
18  *   END_INTERFACE(FrobInterface, PPB_Frob_1_1)
19  *
20  * NOTE:  Use versioned struct name and macro to ensure they match.
21  */
22
23 BEGIN_INTERFACE(ConsoleInterface, PPB_Console_1_0, PPB_CONSOLE_INTERFACE_1_0)
24   METHOD3(ConsoleInterface, void, Log, PP_Instance, PP_LogLevel, PP_Var)
25 END_INTERFACE(ConsoleInterface, PPB_Console_1_0)
26
27 BEGIN_INTERFACE(CoreInterface, PPB_Core_1_0, PPB_CORE_INTERFACE_1_0)
28   METHOD1(CoreInterface, void, AddRefResource, PP_Resource)
29   METHOD1(CoreInterface, void, ReleaseResource, PP_Resource)
30   METHOD0(CoreInterface, PP_Bool, IsMainThread)
31 END_INTERFACE(CoreInterface, PPB_Core_1_0)
32
33 BEGIN_INTERFACE(FileIoInterface, PPB_FileIO_1_0, PPB_FILEIO_INTERFACE_1_0)
34   METHOD1(FileIoInterface, void, Close, PP_Resource)
35   METHOD1(FileIoInterface, PP_Resource, Create, PP_Resource)
36   METHOD2(FileIoInterface, int32_t, Flush, PP_Resource,
37           PP_CompletionCallback)
38   METHOD4(FileIoInterface, int32_t, Open, PP_Resource, PP_Resource, int32_t,
39           PP_CompletionCallback)
40   METHOD3(FileIoInterface, int32_t, Query, PP_Resource, PP_FileInfo*,
41           PP_CompletionCallback)
42   METHOD5(FileIoInterface, int32_t, Read, PP_Resource, int64_t, char*,
43           int32_t, PP_CompletionCallback)
44   METHOD3(FileIoInterface, int32_t, SetLength, PP_Resource, int64_t,
45           PP_CompletionCallback)
46   METHOD5(FileIoInterface, int32_t, Write, PP_Resource, int64_t,
47           const char*, int32_t, PP_CompletionCallback)
48 END_INTERFACE(FileIoInterface, PPB_FileIO_1_0)
49
50 BEGIN_INTERFACE(FileRefInterface, PPB_FileRef_1_1, PPB_FILEREF_INTERFACE_1_1)
51   METHOD2(FileRefInterface, PP_Resource, Create, PP_Resource, const char*)
52   METHOD2(FileRefInterface, int32_t, Delete, PP_Resource, PP_CompletionCallback)
53   METHOD1(FileRefInterface, PP_Var, GetName, PP_Resource)
54   METHOD3(FileRefInterface, int32_t, MakeDirectory, PP_Resource, PP_Bool,
55           PP_CompletionCallback)
56   METHOD3(FileRefInterface, int32_t, Query, PP_Resource, PP_FileInfo*,
57           PP_CompletionCallback)
58   METHOD3(FileRefInterface, int32_t, ReadDirectoryEntries, PP_Resource,
59           const PP_ArrayOutput&, PP_CompletionCallback)
60 END_INTERFACE(FileRefInterface, PPB_FileRef_1_1)
61
62 BEGIN_INTERFACE(FileSystemInterface, PPB_FileSystem_1_0,
63                 PPB_FILESYSTEM_INTERFACE_1_0)
64   METHOD2(FileSystemInterface, PP_Resource, Create, PP_Instance,
65           PP_FileSystemType)
66   METHOD3(FileSystemInterface, int32_t, Open, PP_Resource, int64_t,
67           PP_CompletionCallback)
68 END_INTERFACE(FileSystemInterface, PPB_FileSystem_1_0)
69
70 BEGIN_INTERFACE(MessageLoopInterface, PPB_MessageLoop_1_0,
71                 PPB_MESSAGELOOP_INTERFACE_1_0)
72   METHOD1(MessageLoopInterface, PP_Resource, Create, PP_Instance)
73   METHOD1(MessageLoopInterface, int32_t, AttachToCurrentThread, PP_Resource)
74   METHOD1(MessageLoopInterface, int32_t, Run, PP_Resource)
75   METHOD3(MessageLoopInterface, int32_t, PostWork, PP_Resource,
76           struct PP_CompletionCallback, int64_t)
77   METHOD2(MessageLoopInterface, int32_t, PostQuit, PP_Resource, PP_Bool)
78   METHOD0(MessageLoopInterface, PP_Resource, GetCurrent)
79   METHOD0(MessageLoopInterface, PP_Resource, GetForMainThread)
80 END_INTERFACE(MessageLoopInterface, PPB_MessageLoop_1_0)
81
82 BEGIN_INTERFACE(MessagingInterface, PPB_Messaging_1_0,
83                 PPB_MESSAGING_INTERFACE_1_0)
84   METHOD2(MessagingInterface, void, PostMessage, PP_Instance, PP_Var)
85 END_INTERFACE(MessagingInterface, PPB_Messaging_1_0)
86
87 BEGIN_INTERFACE(VarInterface, PPB_Var_1_1, PPB_VAR_INTERFACE_1_1)
88   METHOD1(VarInterface, void, AddRef, PP_Var)
89   METHOD1(VarInterface, void, Release, PP_Var)
90   METHOD2(VarInterface, PP_Var, VarFromUtf8, const char *, uint32_t)
91   METHOD2(VarInterface, const char*, VarToUtf8, PP_Var, uint32_t*)
92 END_INTERFACE(VarInterface, PPB_Var_1_1)
93
94 BEGIN_INTERFACE(HostResolverInterface, PPB_HostResolver_1_0,
95                 PPB_HOSTRESOLVER_INTERFACE_1_0)
96   METHOD1(HostResolverInterface, PP_Resource, Create, PP_Instance)
97   METHOD5(HostResolverInterface, int32_t, Resolve, PP_Resource, const char*,
98           uint16_t, const struct PP_HostResolver_Hint*,
99           struct PP_CompletionCallback)
100   METHOD1(HostResolverInterface, PP_Var, GetCanonicalName, PP_Resource)
101   METHOD1(HostResolverInterface, uint32_t, GetNetAddressCount, PP_Resource)
102   METHOD2(HostResolverInterface, PP_Resource, GetNetAddress,
103           PP_Resource, uint32_t)
104 END_INTERFACE(HostResolverInterface, PPB_HostResolver_1_0)
105
106 BEGIN_INTERFACE(NetAddressInterface, PPB_NetAddress_1_0,
107                 PPB_NETADDRESS_INTERFACE_1_0)
108   METHOD2(NetAddressInterface, PP_Resource, CreateFromIPv4Address,
109           PP_Instance, PP_NetAddress_IPv4*)
110   METHOD2(NetAddressInterface, PP_Resource, CreateFromIPv6Address,
111           PP_Instance, PP_NetAddress_IPv6*)
112   METHOD1(NetAddressInterface, PP_Bool, IsNetAddress, PP_Resource)
113   METHOD1(NetAddressInterface, PP_NetAddress_Family, GetFamily, PP_Resource)
114   METHOD2(NetAddressInterface, PP_Bool, DescribeAsIPv4Address, PP_Resource,
115           struct PP_NetAddress_IPv4*)
116   METHOD2(NetAddressInterface, PP_Bool, DescribeAsIPv6Address, PP_Resource,
117           struct PP_NetAddress_IPv6*)
118   METHOD2(NetAddressInterface, PP_Var, DescribeAsString, PP_Resource, PP_Bool)
119 END_INTERFACE(NetAddressInterface, PPB_NetAddress_1_0)
120
121 BEGIN_INTERFACE(URLLoaderInterface, PPB_URLLoader_1_0,
122                 PPB_URLLOADER_INTERFACE_1_0)
123   METHOD1(URLLoaderInterface, PP_Resource, Create, PP_Instance)
124   METHOD3(URLLoaderInterface, int32_t, Open, PP_Resource, PP_Resource,
125           PP_CompletionCallback)
126   METHOD1(URLLoaderInterface, PP_Resource, GetResponseInfo, PP_Resource)
127   METHOD4(URLLoaderInterface, int32_t, ReadResponseBody, PP_Resource, void*,
128           int32_t, PP_CompletionCallback)
129   METHOD1(URLLoaderInterface, void, Close, PP_Resource)
130 END_INTERFACE(URLLoaderInterface, PPB_URLLoader_1_0)
131
132 BEGIN_INTERFACE(URLRequestInfoInterface, PPB_URLRequestInfo_1_0,
133                 PPB_URLREQUESTINFO_INTERFACE_1_0)
134   METHOD1(URLRequestInfoInterface, PP_Resource, Create, PP_Instance)
135   METHOD3(URLRequestInfoInterface, PP_Bool, SetProperty, PP_Resource,
136           PP_URLRequestProperty, PP_Var)
137 END_INTERFACE(URLRequestInfoInterface, PPB_URLRequestInfo_1_0)
138
139 BEGIN_INTERFACE(URLResponseInfoInterface, PPB_URLResponseInfo_1_0,
140                 PPB_URLRESPONSEINFO_INTERFACE_1_0)
141   METHOD2(URLResponseInfoInterface, PP_Var, GetProperty, PP_Resource,
142           PP_URLResponseProperty)
143 END_INTERFACE(URLResponseInfoInterface, PPB_URLResponseInfo_1_0)
144
145 BEGIN_INTERFACE(TCPSocketInterface, PPB_TCPSocket_1_1,
146                 PPB_TCPSOCKET_INTERFACE_1_1)
147   METHOD1(TCPSocketInterface, PP_Resource, Create, PP_Instance)
148   METHOD3(TCPSocketInterface, int32_t, Bind, PP_Resource, PP_Resource,
149           PP_CompletionCallback)
150   METHOD3(TCPSocketInterface, int32_t, Listen, PP_Resource, int32_t,
151           PP_CompletionCallback)
152   METHOD3(TCPSocketInterface, int32_t, Accept, PP_Resource, PP_Resource*,
153           PP_CompletionCallback)
154   METHOD1(TCPSocketInterface, PP_Bool, IsTCPSocket, PP_Resource)
155   METHOD3(TCPSocketInterface, int32_t, Connect, PP_Resource, PP_Resource,
156           PP_CompletionCallback)
157   METHOD1(TCPSocketInterface, PP_Resource, GetLocalAddress, PP_Resource)
158   METHOD1(TCPSocketInterface, PP_Resource, GetRemoteAddress, PP_Resource)
159   METHOD4(TCPSocketInterface, int32_t, Read, PP_Resource, char*, int32_t,
160           PP_CompletionCallback)
161   METHOD4(TCPSocketInterface, int32_t, Write, PP_Resource, const char*,
162           int32_t, PP_CompletionCallback)
163   METHOD1(TCPSocketInterface, void, Close, PP_Resource)
164   METHOD4(TCPSocketInterface, int32_t, SetOption, PP_Resource,
165           PP_TCPSocket_Option, PP_Var, PP_CompletionCallback)
166 END_INTERFACE(TCPSocketInterface, PPB_TCPSocket_1_1)
167
168 BEGIN_INTERFACE(UDPSocketInterface, PPB_UDPSocket_1_0,
169                 PPB_UDPSOCKET_INTERFACE_1_0)
170   METHOD1(UDPSocketInterface, PP_Resource, Create, PP_Instance)
171   METHOD1(UDPSocketInterface, PP_Bool, IsUDPSocket, PP_Resource)
172   METHOD3(UDPSocketInterface, int32_t, Bind, PP_Resource, PP_Resource,
173           PP_CompletionCallback)
174   METHOD1(UDPSocketInterface, PP_Resource, GetBoundAddress, PP_Resource)
175   METHOD5(UDPSocketInterface, int32_t, RecvFrom, PP_Resource, char*, int32_t,
176           PP_Resource*, PP_CompletionCallback)
177   METHOD5(UDPSocketInterface, int32_t, SendTo, PP_Resource, const char*,
178           int32_t, PP_Resource, PP_CompletionCallback)
179   METHOD1(UDPSocketInterface, void, Close, PP_Resource)
180   METHOD4(UDPSocketInterface, int32_t, SetOption, PP_Resource,
181           PP_UDPSocket_Option, PP_Var, PP_CompletionCallback)
182 END_INTERFACE(UDPSocketInterface, PPB_UDPSocket_1_0)