Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / ppapi / proxy / tcp_socket_resource.h
blob449cab696227aa6260f357cfd79c901f8e0ffa0e
1 // Copyright 2013 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.
5 #ifndef PPAPI_PROXY_TCP_SOCKET_RESOURCE_H_
6 #define PPAPI_PROXY_TCP_SOCKET_RESOURCE_H_
8 #include "base/basictypes.h"
9 #include "base/compiler_specific.h"
10 #include "ppapi/proxy/tcp_socket_resource_base.h"
11 #include "ppapi/thunk/ppb_tcp_socket_api.h"
13 namespace ppapi {
15 enum TCPSocketVersion;
17 namespace proxy {
19 class PPAPI_PROXY_EXPORT TCPSocketResource : public thunk::PPB_TCPSocket_API,
20 public TCPSocketResourceBase {
21 public:
22 // C-tor used for new sockets created.
23 TCPSocketResource(Connection connection,
24 PP_Instance instance,
25 TCPSocketVersion version);
27 ~TCPSocketResource() override;
29 // PluginResource overrides.
30 thunk::PPB_TCPSocket_API* AsPPB_TCPSocket_API() override;
32 // thunk::PPB_TCPSocket_API implementation.
33 int32_t Bind(PP_Resource addr,
34 scoped_refptr<TrackedCallback> callback) override;
35 int32_t Connect(PP_Resource addr,
36 scoped_refptr<TrackedCallback> callback) override;
37 PP_Resource GetLocalAddress() override;
38 PP_Resource GetRemoteAddress() override;
39 int32_t Read(char* buffer,
40 int32_t bytes_to_read,
41 scoped_refptr<TrackedCallback> callback) override;
42 int32_t Write(const char* buffer,
43 int32_t bytes_to_write,
44 scoped_refptr<TrackedCallback> callback) override;
45 int32_t Listen(int32_t backlog,
46 scoped_refptr<TrackedCallback> callback) override;
47 int32_t Accept(PP_Resource* accepted_tcp_socket,
48 scoped_refptr<TrackedCallback> callback) override;
49 void Close() override;
50 int32_t SetOption1_1(
51 PP_TCPSocket_Option name,
52 const PP_Var& value,
53 scoped_refptr<TrackedCallback> callback) override;
54 int32_t SetOption(PP_TCPSocket_Option name,
55 const PP_Var& value,
56 scoped_refptr<TrackedCallback> callback) override;
58 // TCPSocketResourceBase implementation.
59 PP_Resource CreateAcceptedSocket(
60 int pending_host_id,
61 const PP_NetAddress_Private& local_addr,
62 const PP_NetAddress_Private& remote_addr) override;
64 private:
65 // C-tor used for accepted sockets.
66 TCPSocketResource(Connection connection,
67 PP_Instance instance,
68 int pending_host_id,
69 const PP_NetAddress_Private& local_addr,
70 const PP_NetAddress_Private& remote_addr);
72 DISALLOW_COPY_AND_ASSIGN(TCPSocketResource);
75 } // namespace proxy
76 } // namespace ppapi
78 #endif // PPAPI_PROXY_TCP_SOCKET_RESOURCE_H_