summaryrefslogtreecommitdiffstats
path: root/ppapi/thunk/ppb_flash_tcp_socket_thunk.cc
diff options
context:
space:
mode:
authoryzshen@chromium.org <yzshen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-01 16:58:14 +0000
committeryzshen@chromium.org <yzshen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-01 16:58:14 +0000
commit373a95aa69caa254f250c40f4483d6ac2b8c780c (patch)
tree85ff9884a544a7197e037d045bdb8982b9a8b9f9 /ppapi/thunk/ppb_flash_tcp_socket_thunk.cc
parent1960edd57c9a2389229a774ef8f66597c28ca1fb (diff)
downloadchromium_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.cc121
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
+