Home | History | Annotate | Download | only in pepper
      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 /* Given an interface like this:
      6  *
      7  *   struct PPB_Frob_1_1 {
      8  *     void (*Flange)(int32_t param1, char* param2);
      9  *     int32_t (*Shlep)(PP_CompletionCallback);
     10  *   };
     11  *
     12  * Write a set of macros like this:
     13  *
     14  *   BEGIN_INTERFACE(FrobInterface, PPB_Frob_1_1, PPB_FROB_INTERFACE_1_1)
     15  *     METHOD2(FrobInterface, void, Flange, int32_t, char*)
     16  *     METHOD1(FrobInterface, int32_t, Shlep, PP_CompletionCallback)
     17  *   END_INTERFACE(FrobInterface, PPB_Frob_1_1)
     18  *
     19  * NOTE:  Use versioned struct name and macro to ensure they match.
     20  */
     21 
     22 /* Chrome M25 required */
     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 /* Chrome M14 required */
     28 BEGIN_INTERFACE(CoreInterface, PPB_Core_1_0, PPB_CORE_INTERFACE_1_0)
     29   METHOD1(CoreInterface, void, AddRefResource, PP_Resource)
     30   METHOD1(CoreInterface, void, ReleaseResource, PP_Resource)
     31   METHOD0(CoreInterface, PP_Bool, IsMainThread)
     32 END_INTERFACE(CoreInterface, PPB_Core_1_0)
     33 
     34 /* Chrome M14 required */
     35 BEGIN_INTERFACE(FileIoInterface, PPB_FileIO_1_0, PPB_FILEIO_INTERFACE_1_0)
     36   METHOD1(FileIoInterface, void, Close, PP_Resource)
     37   METHOD1(FileIoInterface, PP_Resource, Create, PP_Resource)
     38   METHOD2(FileIoInterface, int32_t, Flush, PP_Resource,
     39           PP_CompletionCallback)
     40   METHOD4(FileIoInterface, int32_t, Open, PP_Resource, PP_Resource, int32_t,
     41           PP_CompletionCallback)
     42   METHOD3(FileIoInterface, int32_t, Query, PP_Resource, PP_FileInfo*,
     43           PP_CompletionCallback)
     44   METHOD5(FileIoInterface, int32_t, Read, PP_Resource, int64_t, char*,
     45           int32_t, PP_CompletionCallback)
     46   METHOD3(FileIoInterface, int32_t, SetLength, PP_Resource, int64_t,
     47           PP_CompletionCallback)
     48   METHOD5(FileIoInterface, int32_t, Write, PP_Resource, int64_t,
     49           const char*, int32_t, PP_CompletionCallback)
     50 END_INTERFACE(FileIoInterface, PPB_FileIO_1_0)
     51 
     52 /* Chrome M28 required */
     53 BEGIN_INTERFACE(FileRefInterface, PPB_FileRef_1_1, PPB_FILEREF_INTERFACE_1_1)
     54   METHOD2(FileRefInterface, PP_Resource, Create, PP_Resource, const char*)
     55   METHOD2(FileRefInterface, int32_t, Delete, PP_Resource, PP_CompletionCallback)
     56   METHOD1(FileRefInterface, PP_Var, GetName, PP_Resource)
     57   METHOD3(FileRefInterface, int32_t, MakeDirectory, PP_Resource, PP_Bool,
     58           PP_CompletionCallback)
     59   METHOD3(FileRefInterface, int32_t, Query, PP_Resource, PP_FileInfo*,
     60           PP_CompletionCallback)
     61   METHOD3(FileRefInterface, int32_t, ReadDirectoryEntries, PP_Resource,
     62           const PP_ArrayOutput&, PP_CompletionCallback)
     63   METHOD3(FileRefInterface, int32_t, Rename, PP_Resource, PP_Resource,
     64           PP_CompletionCallback)
     65 END_INTERFACE(FileRefInterface, PPB_FileRef_1_1)
     66 
     67 /* Chrome M14 required */
     68 BEGIN_INTERFACE(FileSystemInterface, PPB_FileSystem_1_0,
     69                 PPB_FILESYSTEM_INTERFACE_1_0)
     70   METHOD1(FileSystemInterface, PP_Bool, IsFileSystem, PP_Resource)
     71   METHOD2(FileSystemInterface, PP_Resource, Create, PP_Instance,
     72           PP_FileSystemType)
     73   METHOD3(FileSystemInterface, int32_t, Open, PP_Resource, int64_t,
     74           PP_CompletionCallback)
     75 END_INTERFACE(FileSystemInterface, PPB_FileSystem_1_0)
     76 
     77 /* Chrome M25 required */
     78 BEGIN_INTERFACE(MessageLoopInterface, PPB_MessageLoop_1_0,
     79                 PPB_MESSAGELOOP_INTERFACE_1_0)
     80   METHOD1(MessageLoopInterface, PP_Resource, Create, PP_Instance)
     81   METHOD1(MessageLoopInterface, int32_t, AttachToCurrentThread, PP_Resource)
     82   METHOD1(MessageLoopInterface, int32_t, Run, PP_Resource)
     83   METHOD3(MessageLoopInterface, int32_t, PostWork, PP_Resource,
     84           struct PP_CompletionCallback, int64_t)
     85   METHOD2(MessageLoopInterface, int32_t, PostQuit, PP_Resource, PP_Bool)
     86   METHOD0(MessageLoopInterface, PP_Resource, GetCurrent)
     87   METHOD0(MessageLoopInterface, PP_Resource, GetForMainThread)
     88 END_INTERFACE(MessageLoopInterface, PPB_MessageLoop_1_0)
     89 
     90 /* Chrome M14 required */
     91 BEGIN_INTERFACE(MessagingInterface, PPB_Messaging_1_0,
     92                 PPB_MESSAGING_INTERFACE_1_0)
     93   METHOD2(MessagingInterface, void, PostMessage, PP_Instance, PP_Var)
     94 END_INTERFACE(MessagingInterface, PPB_Messaging_1_0)
     95 
     96 /* Chrome M29 required */
     97 BEGIN_INTERFACE(VarArrayInterface, PPB_VarArray_1_0,
     98                 PPB_VAR_ARRAY_INTERFACE_1_0)
     99   METHOD0(VarArrayInterface, PP_Var, Create)
    100   METHOD2(VarArrayInterface, PP_Var, Get, PP_Var, uint32_t)
    101   METHOD3(VarArrayInterface, PP_Bool, Set, PP_Var, uint32_t, PP_Var)
    102   METHOD1(VarArrayInterface, uint32_t, GetLength, PP_Var)
    103   METHOD2(VarArrayInterface, PP_Bool, SetLength, PP_Var, uint32_t)
    104 END_INTERFACE(VarArrayInterface, PPB_VarArray_1_0)
    105 
    106 /* Chrome M18 required */
    107 BEGIN_INTERFACE(VarArrayBufferInterface, PPB_VarArrayBuffer_1_0,
    108                 PPB_VAR_ARRAY_BUFFER_INTERFACE_1_0)
    109   METHOD1(VarArrayBufferInterface, PP_Var, Create, uint32_t)
    110   METHOD2(VarArrayBufferInterface, PP_Bool, ByteLength, PP_Var, uint32_t*)
    111   METHOD1(VarArrayBufferInterface, void*, Map, PP_Var)
    112   METHOD1(VarArrayBufferInterface, void, Unmap, PP_Var)
    113 END_INTERFACE(VarArrayBufferInterface, PPB_VarArrayBuffer_1_0)
    114 
    115 BEGIN_INTERFACE(VarDictionaryInterface, PPB_VarDictionary_1_0,
    116                 PPB_VAR_DICTIONARY_INTERFACE_1_0)
    117   METHOD0(VarDictionaryInterface, PP_Var, Create)
    118   METHOD3(VarDictionaryInterface, PP_Bool, Set, PP_Var, PP_Var, PP_Var)
    119   METHOD2(VarDictionaryInterface, PP_Var, Get, PP_Var, PP_Var)
    120   METHOD1(VarDictionaryInterface, PP_Var, GetKeys, PP_Var)
    121 END_INTERFACE(VarDictionaryInterface, PPB_VarDictionary_1_0)
    122 
    123 /* Chrome M18 required */
    124 BEGIN_INTERFACE(VarInterface, PPB_Var_1_1, PPB_VAR_INTERFACE_1_1)
    125   METHOD1(VarInterface, void, AddRef, PP_Var)
    126   METHOD1(VarInterface, void, Release, PP_Var)
    127   METHOD2(VarInterface, PP_Var, VarFromUtf8, const char *, uint32_t)
    128   METHOD2(VarInterface, const char*, VarToUtf8, PP_Var, uint32_t*)
    129 END_INTERFACE(VarInterface, PPB_Var_1_1)
    130 
    131 /* Chrome M29 required */
    132 BEGIN_INTERFACE(HostResolverInterface, PPB_HostResolver_1_0,
    133                 PPB_HOSTRESOLVER_INTERFACE_1_0)
    134   METHOD1(HostResolverInterface, PP_Resource, Create, PP_Instance)
    135   METHOD5(HostResolverInterface, int32_t, Resolve, PP_Resource, const char*,
    136           uint16_t, const struct PP_HostResolver_Hint*,
    137           struct PP_CompletionCallback)
    138   METHOD1(HostResolverInterface, PP_Var, GetCanonicalName, PP_Resource)
    139   METHOD1(HostResolverInterface, uint32_t, GetNetAddressCount, PP_Resource)
    140   METHOD2(HostResolverInterface, PP_Resource, GetNetAddress,
    141           PP_Resource, uint32_t)
    142 END_INTERFACE(HostResolverInterface, PPB_HostResolver_1_0)
    143 
    144 /* Chrome M29 required */
    145 BEGIN_INTERFACE(NetAddressInterface, PPB_NetAddress_1_0,
    146                 PPB_NETADDRESS_INTERFACE_1_0)
    147   METHOD2(NetAddressInterface, PP_Resource, CreateFromIPv4Address,
    148           PP_Instance, PP_NetAddress_IPv4*)
    149   METHOD2(NetAddressInterface, PP_Resource, CreateFromIPv6Address,
    150           PP_Instance, PP_NetAddress_IPv6*)
    151   METHOD1(NetAddressInterface, PP_Bool, IsNetAddress, PP_Resource)
    152   METHOD1(NetAddressInterface, PP_NetAddress_Family, GetFamily, PP_Resource)
    153   METHOD2(NetAddressInterface, PP_Bool, DescribeAsIPv4Address, PP_Resource,
    154           struct PP_NetAddress_IPv4*)
    155   METHOD2(NetAddressInterface, PP_Bool, DescribeAsIPv6Address, PP_Resource,
    156           struct PP_NetAddress_IPv6*)
    157   METHOD2(NetAddressInterface, PP_Var, DescribeAsString, PP_Resource, PP_Bool)
    158 END_INTERFACE(NetAddressInterface, PPB_NetAddress_1_0)
    159 
    160 /* Chrome M14 required */
    161 BEGIN_INTERFACE(URLLoaderInterface, PPB_URLLoader_1_0,
    162                 PPB_URLLOADER_INTERFACE_1_0)
    163   METHOD1(URLLoaderInterface, PP_Resource, Create, PP_Instance)
    164   METHOD3(URLLoaderInterface, int32_t, Open, PP_Resource, PP_Resource,
    165           PP_CompletionCallback)
    166   METHOD1(URLLoaderInterface, PP_Resource, GetResponseInfo, PP_Resource)
    167   METHOD4(URLLoaderInterface, int32_t, ReadResponseBody, PP_Resource, void*,
    168           int32_t, PP_CompletionCallback)
    169   METHOD1(URLLoaderInterface, void, Close, PP_Resource)
    170 END_INTERFACE(URLLoaderInterface, PPB_URLLoader_1_0)
    171 
    172 /* Chrome M14 required */
    173 BEGIN_INTERFACE(URLRequestInfoInterface, PPB_URLRequestInfo_1_0,
    174                 PPB_URLREQUESTINFO_INTERFACE_1_0)
    175   METHOD1(URLRequestInfoInterface, PP_Resource, Create, PP_Instance)
    176   METHOD3(URLRequestInfoInterface, PP_Bool, SetProperty, PP_Resource,
    177           PP_URLRequestProperty, PP_Var)
    178 END_INTERFACE(URLRequestInfoInterface, PPB_URLRequestInfo_1_0)
    179 
    180 /* Chrome M14 required */
    181 BEGIN_INTERFACE(URLResponseInfoInterface, PPB_URLResponseInfo_1_0,
    182                 PPB_URLRESPONSEINFO_INTERFACE_1_0)
    183   METHOD2(URLResponseInfoInterface, PP_Var, GetProperty, PP_Resource,
    184           PP_URLResponseProperty)
    185 END_INTERFACE(URLResponseInfoInterface, PPB_URLResponseInfo_1_0)
    186 
    187 /* Chrome M31 required */
    188 BEGIN_INTERFACE(TCPSocketInterface, PPB_TCPSocket_1_1,
    189                 PPB_TCPSOCKET_INTERFACE_1_1)
    190   METHOD1(TCPSocketInterface, PP_Resource, Create, PP_Instance)
    191   METHOD3(TCPSocketInterface, int32_t, Bind, PP_Resource, PP_Resource,
    192           PP_CompletionCallback)
    193   METHOD3(TCPSocketInterface, int32_t, Listen, PP_Resource, int32_t,
    194           PP_CompletionCallback)
    195   METHOD3(TCPSocketInterface, int32_t, Accept, PP_Resource, PP_Resource*,
    196           PP_CompletionCallback)
    197   METHOD1(TCPSocketInterface, PP_Bool, IsTCPSocket, PP_Resource)
    198   METHOD3(TCPSocketInterface, int32_t, Connect, PP_Resource, PP_Resource,
    199           PP_CompletionCallback)
    200   METHOD1(TCPSocketInterface, PP_Resource, GetLocalAddress, PP_Resource)
    201   METHOD1(TCPSocketInterface, PP_Resource, GetRemoteAddress, PP_Resource)
    202   METHOD4(TCPSocketInterface, int32_t, Read, PP_Resource, char*, int32_t,
    203           PP_CompletionCallback)
    204   METHOD4(TCPSocketInterface, int32_t, Write, PP_Resource, const char*,
    205           int32_t, PP_CompletionCallback)
    206   METHOD1(TCPSocketInterface, void, Close, PP_Resource)
    207   METHOD4(TCPSocketInterface, int32_t, SetOption, PP_Resource,
    208           PP_TCPSocket_Option, PP_Var, PP_CompletionCallback)
    209 END_INTERFACE(TCPSocketInterface, PPB_TCPSocket_1_1)
    210 
    211 /* Chrome M29 required */
    212 BEGIN_INTERFACE(UDPSocketInterface, PPB_UDPSocket_1_0,
    213                 PPB_UDPSOCKET_INTERFACE_1_0)
    214   METHOD1(UDPSocketInterface, PP_Resource, Create, PP_Instance)
    215   METHOD1(UDPSocketInterface, PP_Bool, IsUDPSocket, PP_Resource)
    216   METHOD3(UDPSocketInterface, int32_t, Bind, PP_Resource, PP_Resource,
    217           PP_CompletionCallback)
    218   METHOD1(UDPSocketInterface, PP_Resource, GetBoundAddress, PP_Resource)
    219   METHOD5(UDPSocketInterface, int32_t, RecvFrom, PP_Resource, char*, int32_t,
    220           PP_Resource*, PP_CompletionCallback)
    221   METHOD5(UDPSocketInterface, int32_t, SendTo, PP_Resource, const char*,
    222           int32_t, PP_Resource, PP_CompletionCallback)
    223   METHOD1(UDPSocketInterface, void, Close, PP_Resource)
    224   METHOD4(UDPSocketInterface, int32_t, SetOption, PP_Resource,
    225           PP_UDPSocket_Option, PP_Var, PP_CompletionCallback)
    226 END_INTERFACE(UDPSocketInterface, PPB_UDPSocket_1_0)
    227