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

Side by Side Diff: net/websockets/websocket_job.cc

Issue 5634005: Add a new GetInstance() method for singleton classes under chrome/service and /net. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 10 years 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 #include "net/websockets/websocket_job.h" 5 #include "net/websockets/websocket_job.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/string_tokenizer.h" 9 #include "base/string_tokenizer.h"
10 #include "googleurl/src/gurl.h" 10 #include "googleurl/src/gurl.h"
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 137
138 void WebSocketJob::RestartWithAuth( 138 void WebSocketJob::RestartWithAuth(
139 const string16& username, 139 const string16& username,
140 const string16& password) { 140 const string16& password) {
141 state_ = CONNECTING; 141 state_ = CONNECTING;
142 socket_->RestartWithAuth(username, password); 142 socket_->RestartWithAuth(username, password);
143 } 143 }
144 144
145 void WebSocketJob::DetachDelegate() { 145 void WebSocketJob::DetachDelegate() {
146 state_ = CLOSED; 146 state_ = CLOSED;
147 Singleton<WebSocketThrottle>::get()->RemoveFromQueue(this); 147 WebSocketThrottle::GetInstance()->RemoveFromQueue(this);
148 Singleton<WebSocketThrottle>::get()->WakeupSocketIfNecessary(); 148 WebSocketThrottle::GetInstance()->WakeupSocketIfNecessary();
149 149
150 scoped_refptr<WebSocketJob> protect(this); 150 scoped_refptr<WebSocketJob> protect(this);
151 151
152 delegate_ = NULL; 152 delegate_ = NULL;
153 if (socket_) 153 if (socket_)
154 socket_->DetachDelegate(); 154 socket_->DetachDelegate();
155 socket_ = NULL; 155 socket_ = NULL;
156 if (callback_) { 156 if (callback_) {
157 waiting_ = false; 157 waiting_ = false;
158 callback_ = NULL; 158 callback_ = NULL;
159 Release(); // Balanced with OnStartOpenConnection(). 159 Release(); // Balanced with OnStartOpenConnection().
160 } 160 }
161 } 161 }
162 162
163 int WebSocketJob::OnStartOpenConnection( 163 int WebSocketJob::OnStartOpenConnection(
164 SocketStream* socket, CompletionCallback* callback) { 164 SocketStream* socket, CompletionCallback* callback) {
165 DCHECK(!callback_); 165 DCHECK(!callback_);
166 state_ = CONNECTING; 166 state_ = CONNECTING;
167 addresses_.Copy(socket->address_list().head(), true); 167 addresses_.Copy(socket->address_list().head(), true);
168 Singleton<WebSocketThrottle>::get()->PutInQueue(this); 168 WebSocketThrottle::GetInstance()->PutInQueue(this);
169 if (!waiting_) 169 if (!waiting_)
170 return OK; 170 return OK;
171 callback_ = callback; 171 callback_ = callback;
172 AddRef(); // Balanced when callback_ becomes NULL. 172 AddRef(); // Balanced when callback_ becomes NULL.
173 return ERR_IO_PENDING; 173 return ERR_IO_PENDING;
174 } 174 }
175 175
176 void WebSocketJob::OnConnected( 176 void WebSocketJob::OnConnected(
177 SocketStream* socket, int max_pending_send_allowed) { 177 SocketStream* socket, int max_pending_send_allowed) {
178 if (state_ == CLOSED) 178 if (state_ == CLOSED)
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 receive_frame_handler_->GetCurrentBufferSize()); 230 receive_frame_handler_->GetCurrentBufferSize());
231 receive_frame_handler_->ReleaseCurrentBuffer(); 231 receive_frame_handler_->ReleaseCurrentBuffer();
232 } 232 }
233 if (delegate_ && received_data.size() > 0) 233 if (delegate_ && received_data.size() > 0)
234 delegate_->OnReceivedData( 234 delegate_->OnReceivedData(
235 socket, received_data.data(), received_data.size()); 235 socket, received_data.data(), received_data.size());
236 } 236 }
237 237
238 void WebSocketJob::OnClose(SocketStream* socket) { 238 void WebSocketJob::OnClose(SocketStream* socket) {
239 state_ = CLOSED; 239 state_ = CLOSED;
240 Singleton<WebSocketThrottle>::get()->RemoveFromQueue(this); 240 WebSocketThrottle::GetInstance()->RemoveFromQueue(this);
241 Singleton<WebSocketThrottle>::get()->WakeupSocketIfNecessary(); 241 WebSocketThrottle::GetInstance()->WakeupSocketIfNecessary();
242 242
243 scoped_refptr<WebSocketJob> protect(this); 243 scoped_refptr<WebSocketJob> protect(this);
244 244
245 SocketStream::Delegate* delegate = delegate_; 245 SocketStream::Delegate* delegate = delegate_;
246 delegate_ = NULL; 246 delegate_ = NULL;
247 socket_ = NULL; 247 socket_ = NULL;
248 if (callback_) { 248 if (callback_) {
249 waiting_ = false; 249 waiting_ = false;
250 callback_ = NULL; 250 callback_ = NULL;
251 Release(); // Balanced with OnStartOpenConnection(). 251 Release(); // Balanced with OnStartOpenConnection().
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 receive_frame_handler_->ReleaseCurrentBuffer(); 398 receive_frame_handler_->ReleaseCurrentBuffer();
399 } 399 }
400 400
401 state_ = OPEN; 401 state_ = OPEN;
402 if (delegate_) 402 if (delegate_)
403 delegate_->OnReceivedData( 403 delegate_->OnReceivedData(
404 socket_, received_data.data(), received_data.size()); 404 socket_, received_data.data(), received_data.size());
405 405
406 handshake_response_.reset(); 406 handshake_response_.reset();
407 407
408 Singleton<WebSocketThrottle>::get()->RemoveFromQueue(this); 408 WebSocketThrottle::GetInstance()->RemoveFromQueue(this);
409 Singleton<WebSocketThrottle>::get()->WakeupSocketIfNecessary(); 409 WebSocketThrottle::GetInstance()->WakeupSocketIfNecessary();
410 return; 410 return;
411 } 411 }
412 412
413 AddRef(); // Balanced in OnCanSetCookieCompleted 413 AddRef(); // Balanced in OnCanSetCookieCompleted
414 414
415 int policy = OK; 415 int policy = OK;
416 if (socket_->context()->cookie_policy()) { 416 if (socket_->context()->cookie_policy()) {
417 GURL url_for_cookies = GetURLForCookies(); 417 GURL url_for_cookies = GetURLForCookies();
418 policy = socket_->context()->cookie_policy()->CanSetCookie( 418 policy = socket_->context()->cookie_policy()->CanSetCookie(
419 url_for_cookies, 419 url_for_cookies,
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
499 socket_->Close(); 499 socket_->Close();
500 return; 500 return;
501 } 501 }
502 current_buffer_ = new DrainableIOBuffer( 502 current_buffer_ = new DrainableIOBuffer(
503 send_frame_handler_->GetCurrentBuffer(), 503 send_frame_handler_->GetCurrentBuffer(),
504 send_frame_handler_->GetCurrentBufferSize()); 504 send_frame_handler_->GetCurrentBufferSize());
505 socket_->SendData(current_buffer_->data(), current_buffer_->BytesRemaining()); 505 socket_->SendData(current_buffer_->data(), current_buffer_->BytesRemaining());
506 } 506 }
507 507
508 } // namespace net 508 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698