diff options
author | ygorshenin@chromium.org <ygorshenin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-05 11:59:42 +0000 |
---|---|---|
committer | ygorshenin@chromium.org <ygorshenin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-05 11:59:42 +0000 |
commit | 1f9ed196023f3e80c4d7582f5f5b2b0f100bec6b (patch) | |
tree | e47509a4d22ba7e144e60d747f56d81736547c15 /ppapi/shared_impl/private | |
parent | c81c89f54c6030200de49aa191e4be579a898dca (diff) | |
download | chromium_src-1f9ed196023f3e80c4d7582f5f5b2b0f100bec6b.zip chromium_src-1f9ed196023f3e80c4d7582f5f5b2b0f100bec6b.tar.gz chromium_src-1f9ed196023f3e80c4d7582f5f5b2b0f100bec6b.tar.bz2 |
Switched proxy for TCPServerSocketPrivate.
BUG=230784
TEST=browser_tests:*TCPServerSocketPrivate
Review URL: https://chromiumcodereview.appspot.com/19005006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@215597 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/shared_impl/private')
-rw-r--r-- | ppapi/shared_impl/private/ppb_tcp_server_socket_shared.cc | 121 | ||||
-rw-r--r-- | ppapi/shared_impl/private/ppb_tcp_server_socket_shared.h | 84 |
2 files changed, 0 insertions, 205 deletions
diff --git a/ppapi/shared_impl/private/ppb_tcp_server_socket_shared.cc b/ppapi/shared_impl/private/ppb_tcp_server_socket_shared.cc deleted file mode 100644 index 11add89..0000000 --- a/ppapi/shared_impl/private/ppb_tcp_server_socket_shared.cc +++ /dev/null @@ -1,121 +0,0 @@ -// Copyright (c) 2012 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/shared_impl/private/ppb_tcp_server_socket_shared.h" - -#include <cstddef> -#include <cstring> - -#include "base/logging.h" -#include "ppapi/c/pp_errors.h" -#include "ppapi/shared_impl/private/net_address_private_impl.h" - -namespace ppapi { - -PPB_TCPServerSocket_Shared::PPB_TCPServerSocket_Shared(PP_Instance instance) - : Resource(OBJECT_IS_IMPL, instance), - socket_id_(0), - local_addr_(), - state_(BEFORE_LISTENING), - tcp_socket_buffer_(NULL) { -} - -PPB_TCPServerSocket_Shared::PPB_TCPServerSocket_Shared( - const HostResource& resource) - : Resource(OBJECT_IS_PROXY, resource), - socket_id_(0), - local_addr_(), - state_(BEFORE_LISTENING), - tcp_socket_buffer_(NULL) { -} - -PPB_TCPServerSocket_Shared::~PPB_TCPServerSocket_Shared() { -} - -thunk::PPB_TCPServerSocket_Private_API* -PPB_TCPServerSocket_Shared::AsPPB_TCPServerSocket_Private_API() { - return this; -} - -int32_t PPB_TCPServerSocket_Shared::Listen( - const PP_NetAddress_Private* addr, - int32_t backlog, - scoped_refptr<TrackedCallback> callback) { - if (!addr) - return PP_ERROR_BADARGUMENT; - if (state_ != BEFORE_LISTENING) - return PP_ERROR_FAILED; - if (TrackedCallback::IsPending(listen_callback_)) - return PP_ERROR_INPROGRESS; // Can only have one pending request. - - listen_callback_ = callback; - // Send the request, the browser will call us back via ListenACK - SendListen(*addr, backlog); - return PP_OK_COMPLETIONPENDING; -} - -int32_t PPB_TCPServerSocket_Shared::Accept( - PP_Resource* tcp_socket, - scoped_refptr<TrackedCallback> callback) { - if (!tcp_socket) - return PP_ERROR_BADARGUMENT; - - if (state_ != LISTENING) - return PP_ERROR_FAILED; - if (TrackedCallback::IsPending(accept_callback_)) - return PP_ERROR_INPROGRESS; - - tcp_socket_buffer_ = tcp_socket; - accept_callback_ = callback; - - SendAccept(); - return PP_OK_COMPLETIONPENDING; -} - -int32_t PPB_TCPServerSocket_Shared::GetLocalAddress( - PP_NetAddress_Private* addr) { - if (!addr) - return PP_ERROR_BADARGUMENT; - if (state_ != LISTENING) - return PP_ERROR_FAILED; - *addr = local_addr_; - return PP_OK; -} - -void PPB_TCPServerSocket_Shared::StopListening() { - if (state_ == CLOSED) - return; - - state_ = CLOSED; - - SendStopListening(); - socket_id_ = 0; - - if (TrackedCallback::IsPending(listen_callback_)) - listen_callback_->PostAbort(); - if (TrackedCallback::IsPending(accept_callback_)) - accept_callback_->PostAbort(); - tcp_socket_buffer_ = NULL; -} - -void PPB_TCPServerSocket_Shared::OnListenCompleted( - uint32 socket_id, - const PP_NetAddress_Private& local_addr, - int32_t status) { - if (state_ != BEFORE_LISTENING || - !TrackedCallback::IsPending(listen_callback_)) { - NOTREACHED(); - return; - } - - if (status == PP_OK) { - socket_id_ = socket_id; - local_addr_ = local_addr; - state_ = LISTENING; - } - - listen_callback_->Run(status); -} - -} // namespace ppapi diff --git a/ppapi/shared_impl/private/ppb_tcp_server_socket_shared.h b/ppapi/shared_impl/private/ppb_tcp_server_socket_shared.h deleted file mode 100644 index 29d14a2..0000000 --- a/ppapi/shared_impl/private/ppb_tcp_server_socket_shared.h +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright (c) 2012 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. - -#ifndef PPAPI_SHARED_IMPL_PRIVATE_PPB_TCP_SERVER_SOCKET_SHARED_H_ -#define PPAPI_SHARED_IMPL_PRIVATE_PPB_TCP_SERVER_SOCKET_SHARED_H_ - -#include "base/compiler_specific.h" -#include "ppapi/c/pp_completion_callback.h" -#include "ppapi/shared_impl/resource.h" -#include "ppapi/shared_impl/tracked_callback.h" -#include "ppapi/thunk/ppb_tcp_server_socket_private_api.h" - -namespace ppapi { - -// This class provides the shared implementation of a -// PPB_TCPServerSocket_Private. The functions that actually send -// messages to browser are implemented differently for the proxied and -// non-proxied derived classes. -class PPAPI_SHARED_EXPORT PPB_TCPServerSocket_Shared - : public thunk::PPB_TCPServerSocket_Private_API, - public Resource { - public: - // C-tor used in Impl case. - PPB_TCPServerSocket_Shared(PP_Instance instance); - // C-tor used in Proxy case. - PPB_TCPServerSocket_Shared(const HostResource& resource); - - virtual ~PPB_TCPServerSocket_Shared(); - - // Resource overrides. - virtual PPB_TCPServerSocket_Private_API* - AsPPB_TCPServerSocket_Private_API() OVERRIDE; - - // PPB_TCPServerSocket_Private_API implementation. - virtual int32_t Listen(const PP_NetAddress_Private* addr, - int32_t backlog, - scoped_refptr<TrackedCallback> callback) OVERRIDE; - virtual int32_t Accept(PP_Resource* tcp_socket, - scoped_refptr<TrackedCallback> callback) OVERRIDE; - virtual int32_t GetLocalAddress(PP_NetAddress_Private* addr) OVERRIDE; - virtual void StopListening() OVERRIDE; - - void OnListenCompleted(uint32 socket_id, - const PP_NetAddress_Private& local_addr, - int32_t status); - virtual void OnAcceptCompleted(bool succeeded, - uint32 accepted_socket_id, - const PP_NetAddress_Private& local_addr, - const PP_NetAddress_Private& remote_addr) = 0; - - // Send functions that need to be implemented differently for the - // proxied and non-proxied derived classes. - virtual void SendListen(const PP_NetAddress_Private& addr, - int32_t backlog) = 0; - virtual void SendAccept() = 0; - virtual void SendStopListening() = 0; - - protected: - enum State { - // Before listening (including a listen request is pending or a - // previous listen request failed). - BEFORE_LISTENING, - // Socket is successfully bound and in listening mode. - LISTENING, - // The socket is closed. - CLOSED - }; - - uint32 socket_id_; - PP_NetAddress_Private local_addr_; - State state_; - - scoped_refptr<TrackedCallback> listen_callback_; - scoped_refptr<TrackedCallback> accept_callback_; - - PP_Resource* tcp_socket_buffer_; - - DISALLOW_COPY_AND_ASSIGN(PPB_TCPServerSocket_Shared); -}; - -} // namespace ppapi - -#endif // PPAPI_SHARED_IMPL_PRIVATE_PPB_TCP_SERVER_SOCKET_SHARED_H_ |