Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(417)

Side by Side Diff: net/websockets/websocket_channel.h

Issue 66013003: Remove the word "factory" from WebSocketChannel (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | net/websockets/websocket_channel.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 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 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_WEBSOCKETS_WEBSOCKET_CHANNEL_H_ 5 #ifndef NET_WEBSOCKETS_WEBSOCKET_CHANNEL_H_
6 #define NET_WEBSOCKETS_WEBSOCKET_CHANNEL_H_ 6 #define NET_WEBSOCKETS_WEBSOCKET_CHANNEL_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 16 matching lines...) Expand all
27 class IOBuffer; 27 class IOBuffer;
28 class URLRequestContext; 28 class URLRequestContext;
29 29
30 // Transport-independent implementation of WebSockets. Implements protocol 30 // Transport-independent implementation of WebSockets. Implements protocol
31 // semantics that do not depend on the underlying transport. Provides the 31 // semantics that do not depend on the underlying transport. Provides the
32 // interface to the content layer. Some WebSocket concepts are used here without 32 // interface to the content layer. Some WebSocket concepts are used here without
33 // definition; please see the RFC at http://tools.ietf.org/html/rfc6455 for 33 // definition; please see the RFC at http://tools.ietf.org/html/rfc6455 for
34 // clarification. 34 // clarification.
35 class NET_EXPORT WebSocketChannel { 35 class NET_EXPORT WebSocketChannel {
36 public: 36 public:
37 // The type of a WebSocketStream factory callback. Must match the signature of 37 // The type of a WebSocketStream creator callback. Must match the signature of
38 // WebSocketStream::CreateAndConnectStream(). 38 // WebSocketStream::CreateAndConnectStream().
39 typedef base::Callback<scoped_ptr<WebSocketStreamRequest>( 39 typedef base::Callback<scoped_ptr<WebSocketStreamRequest>(
40 const GURL&, 40 const GURL&,
41 const std::vector<std::string>&, 41 const std::vector<std::string>&,
42 const GURL&, 42 const GURL&,
43 URLRequestContext*, 43 URLRequestContext*,
44 const BoundNetLog&, 44 const BoundNetLog&,
45 scoped_ptr<WebSocketStream::ConnectDelegate>)> WebSocketStreamFactory; 45 scoped_ptr<WebSocketStream::ConnectDelegate>)> WebSocketStreamCreator;
46 46
47 // Creates a new WebSocketChannel in an idle state. 47 // Creates a new WebSocketChannel in an idle state.
48 // SendAddChannelRequest() must be called immediately afterwards to start the 48 // SendAddChannelRequest() must be called immediately afterwards to start the
49 // connection process. 49 // connection process.
50 WebSocketChannel(scoped_ptr<WebSocketEventInterface> event_interface, 50 WebSocketChannel(scoped_ptr<WebSocketEventInterface> event_interface,
51 URLRequestContext* url_request_context); 51 URLRequestContext* url_request_context);
52 virtual ~WebSocketChannel(); 52 virtual ~WebSocketChannel();
53 53
54 // Starts the connection process. 54 // Starts the connection process.
55 void SendAddChannelRequest( 55 void SendAddChannelRequest(
(...skipping 25 matching lines...) Expand all
81 // connection. There is no API to close the connection without a closing 81 // connection. There is no API to close the connection without a closing
82 // handshake, but destroying the WebSocketChannel object while connected will 82 // handshake, but destroying the WebSocketChannel object while connected will
83 // effectively do that. |code| must be in the range 1000-4999. |reason| should 83 // effectively do that. |code| must be in the range 1000-4999. |reason| should
84 // be a valid UTF-8 string or empty. 84 // be a valid UTF-8 string or empty.
85 // 85 //
86 // This does *not* trigger the event OnClosingHandshake(). The caller should 86 // This does *not* trigger the event OnClosingHandshake(). The caller should
87 // assume that the closing handshake has started and perform the equivalent 87 // assume that the closing handshake has started and perform the equivalent
88 // processing to OnClosingHandshake() if necessary. 88 // processing to OnClosingHandshake() if necessary.
89 void StartClosingHandshake(uint16 code, const std::string& reason); 89 void StartClosingHandshake(uint16 code, const std::string& reason);
90 90
91 // Starts the connection process, using a specified factory function rather 91 // Starts the connection process, using a specified creator function rather
tyoshino (SeeGerritForStatus) 2013/11/12 11:29:42 s/function/callback/ for consistency?
Adam Rice 2013/11/13 03:16:53 Done.
92 // than the default. This is exposed for testing. 92 // than the default. This is exposed for testing.
93 void SendAddChannelRequestForTesting( 93 void SendAddChannelRequestForTesting(
94 const GURL& socket_url, 94 const GURL& socket_url,
95 const std::vector<std::string>& requested_protocols, 95 const std::vector<std::string>& requested_protocols,
96 const GURL& origin, 96 const GURL& origin,
97 const WebSocketStreamFactory& factory); 97 const WebSocketStreamCreator& creator);
98 98
99 // The default timout for the closing handshake is a sensible value (see 99 // The default timout for the closing handshake is a sensible value (see
100 // kClosingHandshakeTimeoutSeconds in websocket_channel.cc). However, we can 100 // kClosingHandshakeTimeoutSeconds in websocket_channel.cc). However, we can
101 // set it to a very small value for testing purposes. 101 // set it to a very small value for testing purposes.
102 void SetClosingHandshakeTimeoutForTesting(base::TimeDelta delay); 102 void SetClosingHandshakeTimeoutForTesting(base::TimeDelta delay);
103 103
104 private: 104 private:
105 // Methods which return a value of type ChannelState may delete |this|. If the 105 // Methods which return a value of type ChannelState may delete |this|. If the
106 // return value is CHANNEL_DELETED, then the caller must return without making 106 // return value is CHANNEL_DELETED, then the caller must return without making
107 // any further access to member variables or methods. 107 // any further access to member variables or methods.
(...skipping 25 matching lines...) Expand all
133 }; 133 };
134 134
135 // Implementation of WebSocketStream::ConnectDelegate for 135 // Implementation of WebSocketStream::ConnectDelegate for
136 // WebSocketChannel. WebSocketChannel does not inherit from 136 // WebSocketChannel. WebSocketChannel does not inherit from
137 // WebSocketStream::ConnectDelegate directly to avoid cluttering the public 137 // WebSocketStream::ConnectDelegate directly to avoid cluttering the public
138 // interface with the implementation of those methods, and because the 138 // interface with the implementation of those methods, and because the
139 // lifetime of a WebSocketChannel is longer than the lifetime of the 139 // lifetime of a WebSocketChannel is longer than the lifetime of the
140 // connection process. 140 // connection process.
141 class ConnectDelegate; 141 class ConnectDelegate;
142 142
143 // Starts the connection progress, using a specified factory function. 143 // Starts the connection progress, using the supplied creator function.
tyoshino (SeeGerritForStatus) 2013/11/12 11:29:42 ditto
tyoshino (SeeGerritForStatus) 2013/11/12 11:29:42 progress -> process
Adam Rice 2013/11/13 03:16:53 Done.
Adam Rice 2013/11/13 03:16:53 Done.
144 void SendAddChannelRequestWithFactory( 144 void SendAddChannelRequestWithSuppliedCreator(
145 const GURL& socket_url, 145 const GURL& socket_url,
146 const std::vector<std::string>& requested_protocols, 146 const std::vector<std::string>& requested_protocols,
147 const GURL& origin, 147 const GURL& origin,
148 const WebSocketStreamFactory& factory); 148 const WebSocketStreamCreator& creator);
149 149
150 // Success callback from WebSocketStream::CreateAndConnectStream(). Reports 150 // Success callback from WebSocketStream::CreateAndConnectStream(). Reports
151 // success to the event interface. May delete |this|. 151 // success to the event interface. May delete |this|.
152 void OnConnectSuccess(scoped_ptr<WebSocketStream> stream); 152 void OnConnectSuccess(scoped_ptr<WebSocketStream> stream);
153 153
154 // Failure callback from WebSocketStream::CreateAndConnectStream(). Reports 154 // Failure callback from WebSocketStream::CreateAndConnectStream(). Reports
155 // failure to the event interface. May delete |this|. 155 // failure to the event interface. May delete |this|.
156 void OnConnectFailure(uint16 websocket_error); 156 void OnConnectFailure(uint16 websocket_error);
157 157
158 // Returns true if state_ is SEND_CLOSED, CLOSE_WAIT or CLOSED. 158 // Returns true if state_ is SEND_CLOSED, CLOSE_WAIT or CLOSED.
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 // Called if the closing handshake times out. Closes the connection and 231 // Called if the closing handshake times out. Closes the connection and
232 // informs the |event_interface_| if appropriate. 232 // informs the |event_interface_| if appropriate.
233 void CloseTimeout(); 233 void CloseTimeout();
234 234
235 // The URL of the remote server. 235 // The URL of the remote server.
236 GURL socket_url_; 236 GURL socket_url_;
237 237
238 // The object receiving events. 238 // The object receiving events.
239 const scoped_ptr<WebSocketEventInterface> event_interface_; 239 const scoped_ptr<WebSocketEventInterface> event_interface_;
240 240
241 // The URLRequestContext to pass to the WebSocketStream factory. 241 // The URLRequestContext to pass to the WebSocketStream creator.
242 URLRequestContext* const url_request_context_; 242 URLRequestContext* const url_request_context_;
243 243
244 // The WebSocketStream on which to send and receive data. 244 // The WebSocketStream on which to send and receive data.
245 scoped_ptr<WebSocketStream> stream_; 245 scoped_ptr<WebSocketStream> stream_;
246 246
247 // A data structure containing a vector of frames to be sent and the total 247 // A data structure containing a vector of frames to be sent and the total
248 // number of bytes contained in the vector. 248 // number of bytes contained in the vector.
249 class SendBuffer; 249 class SendBuffer;
250 // Data that is currently pending write, or NULL if no write is pending. 250 // Data that is currently pending write, or NULL if no write is pending.
251 scoped_ptr<SendBuffer> data_being_sent_; 251 scoped_ptr<SendBuffer> data_being_sent_;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 // The current state of the channel. Mainly used for sanity checking, but also 286 // The current state of the channel. Mainly used for sanity checking, but also
287 // used to track the close state. 287 // used to track the close state.
288 State state_; 288 State state_;
289 289
290 DISALLOW_COPY_AND_ASSIGN(WebSocketChannel); 290 DISALLOW_COPY_AND_ASSIGN(WebSocketChannel);
291 }; 291 };
292 292
293 } // namespace net 293 } // namespace net
294 294
295 #endif // NET_WEBSOCKETS_WEBSOCKET_CHANNEL_H_ 295 #endif // NET_WEBSOCKETS_WEBSOCKET_CHANNEL_H_
OLDNEW
« no previous file with comments | « no previous file | net/websockets/websocket_channel.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698