OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef NET_SOCKET_UNIX_DOMAIN_CLIENT_SOCKET_POSIX_H_ | 5 #ifndef NET_SOCKET_UNIX_DOMAIN_CLIENT_SOCKET_POSIX_H_ |
6 #define NET_SOCKET_UNIX_DOMAIN_CLIENT_SOCKET_POSIX_H_ | 6 #define NET_SOCKET_UNIX_DOMAIN_CLIENT_SOCKET_POSIX_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 14 matching lines...) Expand all Loading... |
25 class NET_EXPORT UnixDomainClientSocket : public StreamSocket { | 25 class NET_EXPORT UnixDomainClientSocket : public StreamSocket { |
26 public: | 26 public: |
27 // Builds a client socket with |socket_path|. The caller should call Connect() | 27 // Builds a client socket with |socket_path|. The caller should call Connect() |
28 // to connect to a server socket. | 28 // to connect to a server socket. |
29 UnixDomainClientSocket(const std::string& socket_path, | 29 UnixDomainClientSocket(const std::string& socket_path, |
30 bool use_abstract_namespace); | 30 bool use_abstract_namespace); |
31 // Builds a client socket with socket libevent which is already connected. | 31 // Builds a client socket with socket libevent which is already connected. |
32 // UnixDomainServerSocket uses this after it accepts a connection. | 32 // UnixDomainServerSocket uses this after it accepts a connection. |
33 explicit UnixDomainClientSocket(scoped_ptr<SocketLibevent> socket); | 33 explicit UnixDomainClientSocket(scoped_ptr<SocketLibevent> socket); |
34 | 34 |
35 virtual ~UnixDomainClientSocket(); | 35 ~UnixDomainClientSocket() override; |
36 | 36 |
37 // Fills |address| with |socket_path| and its length. For Android or Linux | 37 // Fills |address| with |socket_path| and its length. For Android or Linux |
38 // platform, this supports abstract namespaces. | 38 // platform, this supports abstract namespaces. |
39 static bool FillAddress(const std::string& socket_path, | 39 static bool FillAddress(const std::string& socket_path, |
40 bool use_abstract_namespace, | 40 bool use_abstract_namespace, |
41 SockaddrStorage* address); | 41 SockaddrStorage* address); |
42 | 42 |
43 // StreamSocket implementation. | 43 // StreamSocket implementation. |
44 virtual int Connect(const CompletionCallback& callback) override; | 44 int Connect(const CompletionCallback& callback) override; |
45 virtual void Disconnect() override; | 45 void Disconnect() override; |
46 virtual bool IsConnected() const override; | 46 bool IsConnected() const override; |
47 virtual bool IsConnectedAndIdle() const override; | 47 bool IsConnectedAndIdle() const override; |
48 virtual int GetPeerAddress(IPEndPoint* address) const override; | 48 int GetPeerAddress(IPEndPoint* address) const override; |
49 virtual int GetLocalAddress(IPEndPoint* address) const override; | 49 int GetLocalAddress(IPEndPoint* address) const override; |
50 virtual const BoundNetLog& NetLog() const override; | 50 const BoundNetLog& NetLog() const override; |
51 virtual void SetSubresourceSpeculation() override; | 51 void SetSubresourceSpeculation() override; |
52 virtual void SetOmniboxSpeculation() override; | 52 void SetOmniboxSpeculation() override; |
53 virtual bool WasEverUsed() const override; | 53 bool WasEverUsed() const override; |
54 virtual bool UsingTCPFastOpen() const override; | 54 bool UsingTCPFastOpen() const override; |
55 virtual bool WasNpnNegotiated() const override; | 55 bool WasNpnNegotiated() const override; |
56 virtual NextProto GetNegotiatedProtocol() const override; | 56 NextProto GetNegotiatedProtocol() const override; |
57 virtual bool GetSSLInfo(SSLInfo* ssl_info) override; | 57 bool GetSSLInfo(SSLInfo* ssl_info) override; |
58 | 58 |
59 // Socket implementation. | 59 // Socket implementation. |
60 virtual int Read(IOBuffer* buf, int buf_len, | 60 int Read(IOBuffer* buf, |
61 const CompletionCallback& callback) override; | 61 int buf_len, |
62 virtual int Write(IOBuffer* buf, int buf_len, | 62 const CompletionCallback& callback) override; |
63 const CompletionCallback& callback) override; | 63 int Write(IOBuffer* buf, |
64 virtual int SetReceiveBufferSize(int32 size) override; | 64 int buf_len, |
65 virtual int SetSendBufferSize(int32 size) override; | 65 const CompletionCallback& callback) override; |
| 66 int SetReceiveBufferSize(int32 size) override; |
| 67 int SetSendBufferSize(int32 size) override; |
66 | 68 |
67 // Releases ownership of underlying SocketDescriptor to caller. | 69 // Releases ownership of underlying SocketDescriptor to caller. |
68 // Internal state is reset so that this object can be used again. | 70 // Internal state is reset so that this object can be used again. |
69 // Socket must be connected in order to release it. | 71 // Socket must be connected in order to release it. |
70 SocketDescriptor ReleaseConnectedSocket(); | 72 SocketDescriptor ReleaseConnectedSocket(); |
71 | 73 |
72 private: | 74 private: |
73 const std::string socket_path_; | 75 const std::string socket_path_; |
74 const bool use_abstract_namespace_; | 76 const bool use_abstract_namespace_; |
75 scoped_ptr<SocketLibevent> socket_; | 77 scoped_ptr<SocketLibevent> socket_; |
76 // This net log is just to comply StreamSocket::NetLog(). It throws away | 78 // This net log is just to comply StreamSocket::NetLog(). It throws away |
77 // everything. | 79 // everything. |
78 BoundNetLog net_log_; | 80 BoundNetLog net_log_; |
79 | 81 |
80 DISALLOW_COPY_AND_ASSIGN(UnixDomainClientSocket); | 82 DISALLOW_COPY_AND_ASSIGN(UnixDomainClientSocket); |
81 }; | 83 }; |
82 | 84 |
83 } // namespace net | 85 } // namespace net |
84 | 86 |
85 #endif // NET_SOCKET_UNIX_DOMAIN_CLIENT_SOCKET_POSIX_H_ | 87 #endif // NET_SOCKET_UNIX_DOMAIN_CLIENT_SOCKET_POSIX_H_ |
OLD | NEW |