OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. | 2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
64 | 64 |
65 private: | 65 private: |
66 // Called by the underlying socket | 66 // Called by the underlying socket |
67 void OnConnectEvent(AsyncSocket* socket); | 67 void OnConnectEvent(AsyncSocket* socket); |
68 void OnReadEvent(AsyncSocket* socket); | 68 void OnReadEvent(AsyncSocket* socket); |
69 void OnWriteEvent(AsyncSocket* socket); | 69 void OnWriteEvent(AsyncSocket* socket); |
70 void OnCloseEvent(AsyncSocket* socket, int error); | 70 void OnCloseEvent(AsyncSocket* socket, int error); |
71 | 71 |
72 scoped_ptr<AsyncSocket> socket_; | 72 scoped_ptr<AsyncSocket> socket_; |
73 bool listen_; | 73 bool listen_; |
74 char* inbuf_, * outbuf_; | 74 scoped_ptr<char[]> inbuf_; |
| 75 scoped_ptr<char[]> outbuf_; |
75 size_t insize_, inpos_, outsize_, outpos_; | 76 size_t insize_, inpos_, outsize_, outpos_; |
76 | 77 |
77 RTC_DISALLOW_COPY_AND_ASSIGN(AsyncTCPSocketBase); | 78 RTC_DISALLOW_COPY_AND_ASSIGN(AsyncTCPSocketBase); |
78 }; | 79 }; |
79 | 80 |
80 class AsyncTCPSocket : public AsyncTCPSocketBase { | 81 class AsyncTCPSocket : public AsyncTCPSocketBase { |
81 public: | 82 public: |
82 // Binds and connects |socket| and creates AsyncTCPSocket for | 83 // Binds and connects |socket| and creates AsyncTCPSocket for |
83 // it. Takes ownership of |socket|. Returns NULL if bind() or | 84 // it. Takes ownership of |socket|. Returns NULL if bind() or |
84 // connect() fail (|socket| is destroyed in that case). | 85 // connect() fail (|socket| is destroyed in that case). |
85 static AsyncTCPSocket* Create(AsyncSocket* socket, | 86 static AsyncTCPSocket* Create(AsyncSocket* socket, |
86 const SocketAddress& bind_address, | 87 const SocketAddress& bind_address, |
87 const SocketAddress& remote_address); | 88 const SocketAddress& remote_address); |
88 AsyncTCPSocket(AsyncSocket* socket, bool listen); | 89 AsyncTCPSocket(AsyncSocket* socket, bool listen); |
89 ~AsyncTCPSocket() override {} | 90 ~AsyncTCPSocket() override {} |
90 | 91 |
91 int Send(const void* pv, | 92 int Send(const void* pv, |
92 size_t cb, | 93 size_t cb, |
93 const rtc::PacketOptions& options) override; | 94 const rtc::PacketOptions& options) override; |
94 void ProcessInput(char* data, size_t* len) override; | 95 void ProcessInput(char* data, size_t* len) override; |
95 void HandleIncomingConnection(AsyncSocket* socket) override; | 96 void HandleIncomingConnection(AsyncSocket* socket) override; |
96 | 97 |
97 private: | 98 private: |
98 RTC_DISALLOW_COPY_AND_ASSIGN(AsyncTCPSocket); | 99 RTC_DISALLOW_COPY_AND_ASSIGN(AsyncTCPSocket); |
99 }; | 100 }; |
100 | 101 |
101 } // namespace rtc | 102 } // namespace rtc |
102 | 103 |
103 #endif // WEBRTC_BASE_ASYNCTCPSOCKET_H_ | 104 #endif // WEBRTC_BASE_ASYNCTCPSOCKET_H_ |
OLD | NEW |