diff options
author | yzshen@chromium.org <yzshen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-01 16:58:14 +0000 |
---|---|---|
committer | yzshen@chromium.org <yzshen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-01 16:58:14 +0000 |
commit | 373a95aa69caa254f250c40f4483d6ac2b8c780c (patch) | |
tree | 85ff9884a544a7197e037d045bdb8982b9a8b9f9 /ppapi/thunk/ppb_flash_tcp_socket_thunk.cc | |
parent | 1960edd57c9a2389229a774ef8f66597c28ca1fb (diff) | |
download | chromium_src-373a95aa69caa254f250c40f4483d6ac2b8c780c.zip chromium_src-373a95aa69caa254f250c40f4483d6ac2b8c780c.tar.gz chromium_src-373a95aa69caa254f250c40f4483d6ac2b8c780c.tar.bz2 |
Re-land the reverted CL:
http://src.chromium.org/viewvc/chrome?view=rev&revision=91150
Comparing with the previous CL, this CL makes changes to
ppapi/proxy/ppapi_proxy_test.{h,cc}
TEST=None
BUG=None
Review URL: http://codereview.chromium.org/7210030
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@91310 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/thunk/ppb_flash_tcp_socket_thunk.cc')
-rw-r--r-- | ppapi/thunk/ppb_flash_tcp_socket_thunk.cc | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/ppapi/thunk/ppb_flash_tcp_socket_thunk.cc b/ppapi/thunk/ppb_flash_tcp_socket_thunk.cc new file mode 100644 index 0000000..815dd53 --- /dev/null +++ b/ppapi/thunk/ppb_flash_tcp_socket_thunk.cc @@ -0,0 +1,121 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ppapi/c/pp_completion_callback.h" +#include "ppapi/c/pp_errors.h" +#include "ppapi/c/private/ppb_flash_tcp_socket.h" +#include "ppapi/thunk/thunk.h" +#include "ppapi/thunk/enter.h" +#include "ppapi/thunk/ppb_flash_tcp_socket_api.h" +#include "ppapi/thunk/resource_creation_api.h" + +namespace ppapi { +namespace thunk { + +namespace { + +PP_Resource Create(PP_Instance instance) { + EnterFunction<ResourceCreationAPI> enter(instance, true); + if (enter.failed()) + return 0; + return enter.functions()->CreateFlashTCPSocket(instance); +} + +PP_Bool IsFlashTCPSocket(PP_Resource resource) { + EnterResource<PPB_Flash_TCPSocket_API> enter(resource, false); + return PP_FromBool(enter.succeeded()); +} + +int32_t Connect(PP_Resource tcp_socket, + const char* host, + uint16_t port, + PP_CompletionCallback callback) { + EnterResource<PPB_Flash_TCPSocket_API> enter(tcp_socket, true); + if (enter.failed()) + return PP_ERROR_BADRESOURCE; + return enter.object()->Connect(host, port, callback); +} + +int32_t ConnectWithNetAddress(PP_Resource tcp_socket, + const PP_Flash_NetAddress* addr, + PP_CompletionCallback callback) { + EnterResource<PPB_Flash_TCPSocket_API> enter(tcp_socket, true); + if (enter.failed()) + return PP_ERROR_BADRESOURCE; + return enter.object()->ConnectWithNetAddress(addr, callback); +} + +PP_Bool GetLocalAddress(PP_Resource tcp_socket, + PP_Flash_NetAddress* local_addr) { + EnterResource<PPB_Flash_TCPSocket_API> enter(tcp_socket, true); + if (enter.failed()) + return PP_FALSE; + return enter.object()->GetLocalAddress(local_addr); +} + +PP_Bool GetRemoteAddress(PP_Resource tcp_socket, + PP_Flash_NetAddress* remote_addr) { + EnterResource<PPB_Flash_TCPSocket_API> enter(tcp_socket, true); + if (enter.failed()) + return PP_FALSE; + return enter.object()->GetRemoteAddress(remote_addr); +} + +int32_t InitiateSSL(PP_Resource tcp_socket, + const char* server_name, + PP_CompletionCallback callback) { + EnterResource<PPB_Flash_TCPSocket_API> enter(tcp_socket, true); + if (enter.failed()) + return PP_ERROR_BADRESOURCE; + return enter.object()->InitiateSSL(server_name, callback); +} + +int32_t Read(PP_Resource tcp_socket, + char* buffer, + int32_t bytes_to_read, + PP_CompletionCallback callback) { + EnterResource<PPB_Flash_TCPSocket_API> enter(tcp_socket, true); + if (enter.failed()) + return PP_ERROR_BADRESOURCE; + return enter.object()->Read(buffer, bytes_to_read, callback); +} + +int32_t Write(PP_Resource tcp_socket, + const char* buffer, + int32_t bytes_to_write, + PP_CompletionCallback callback) { + EnterResource<PPB_Flash_TCPSocket_API> enter(tcp_socket, true); + if (enter.failed()) + return PP_ERROR_BADRESOURCE; + return enter.object()->Write(buffer, bytes_to_write, callback); +} + +void Disconnect(PP_Resource tcp_socket) { + EnterResource<PPB_Flash_TCPSocket_API> enter(tcp_socket, true); + if (enter.succeeded()) + enter.object()->Disconnect(); +} + +const PPB_Flash_TCPSocket g_ppb_flash_tcp_socket_thunk = { + &Create, + &IsFlashTCPSocket, + &Connect, + &ConnectWithNetAddress, + &GetLocalAddress, + &GetRemoteAddress, + &InitiateSSL, + &Read, + &Write, + &Disconnect +}; + +} // namespace + +const PPB_Flash_TCPSocket* GetPPB_Flash_TCPSocket_Thunk() { + return &g_ppb_flash_tcp_socket_thunk; +} + +} // namespace thunk +} // namespace ppapi + |