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

Side by Side Diff: remoting/protocol/pepper_session.cc

Issue 8116021: Switch remoting/protocol to new callbacks (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: - Created 9 years, 2 months 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
« no previous file with comments | « remoting/protocol/pepper_session.h ('k') | remoting/protocol/pepper_session_manager.h » ('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 (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "remoting/protocol/pepper_session.h" 5 #include "remoting/protocol/pepper_session.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/rand_util.h" 8 #include "base/rand_util.h"
9 #include "base/stl_util.h" 9 #include "base/stl_util.h"
10 #include "base/string_number_conversions.h" 10 #include "base/string_number_conversions.h"
(...skipping 26 matching lines...) Expand all
37 error_(OK) { 37 error_(OK) {
38 } 38 }
39 39
40 PepperSession::~PepperSession() { 40 PepperSession::~PepperSession() {
41 control_channel_socket_.reset(); 41 control_channel_socket_.reset();
42 event_channel_socket_.reset(); 42 event_channel_socket_.reset();
43 STLDeleteContainerPairSecondPointers(channels_.begin(), channels_.end()); 43 STLDeleteContainerPairSecondPointers(channels_.begin(), channels_.end());
44 session_manager_->SessionDestroyed(this); 44 session_manager_->SessionDestroyed(this);
45 } 45 }
46 46
47 void PepperSession::SetStateChangeCallback(StateChangeCallback* callback) { 47 void PepperSession::SetStateChangeCallback(
48 const StateChangeCallback& callback) {
48 DCHECK(CalledOnValidThread()); 49 DCHECK(CalledOnValidThread());
49 state_change_callback_.reset(callback); 50 state_change_callback_ = callback;
50 } 51 }
51 52
52 Session::Error PepperSession::error() { 53 Session::Error PepperSession::error() {
53 DCHECK(CalledOnValidThread()); 54 DCHECK(CalledOnValidThread());
54 return error_; 55 return error_;
55 } 56 }
56 57
57 void PepperSession::StartConnection( 58 void PepperSession::StartConnection(
58 const std::string& peer_jid, 59 const std::string& peer_jid,
59 const std::string& peer_public_key, 60 const std::string& peer_public_key,
60 const std::string& client_token, 61 const std::string& client_token,
61 CandidateSessionConfig* config, 62 CandidateSessionConfig* config,
62 Session::StateChangeCallback* state_change_callback) { 63 const StateChangeCallback& state_change_callback) {
63 DCHECK(CalledOnValidThread()); 64 DCHECK(CalledOnValidThread());
64 65
65 peer_jid_ = peer_jid; 66 peer_jid_ = peer_jid;
66 peer_public_key_ = peer_public_key; 67 peer_public_key_ = peer_public_key;
67 initiator_token_ = client_token; 68 initiator_token_ = client_token;
68 candidate_config_.reset(config); 69 candidate_config_.reset(config);
69 state_change_callback_.reset(state_change_callback); 70 state_change_callback_ = state_change_callback;
70 71
71 // Generate random session ID. There are usually not more than 1 72 // Generate random session ID. There are usually not more than 1
72 // concurrent session per host, so a random 64-bit integer provides 73 // concurrent session per host, so a random 64-bit integer provides
73 // enough entropy. In the worst case connection will fail when two 74 // enough entropy. In the worst case connection will fail when two
74 // clients generate the same session ID concurrently. 75 // clients generate the same session ID concurrently.
75 session_id_ = base::Int64ToString(base::RandGenerator(kint64max)); 76 session_id_ = base::Int64ToString(base::RandGenerator(kint64max));
76 77
77 // Send session-initiate message. 78 // Send session-initiate message.
78 JingleMessage message(peer_jid_, JingleMessage::SESSION_INITIATE, 79 JingleMessage message(peer_jid_, JingleMessage::SESSION_INITIATE,
79 session_id_); 80 session_id_);
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 } 376 }
376 377
377 void PepperSession::SetState(State new_state) { 378 void PepperSession::SetState(State new_state) {
378 DCHECK(CalledOnValidThread()); 379 DCHECK(CalledOnValidThread());
379 380
380 if (new_state != state_) { 381 if (new_state != state_) {
381 DCHECK_NE(state_, CLOSED); 382 DCHECK_NE(state_, CLOSED);
382 DCHECK_NE(state_, FAILED); 383 DCHECK_NE(state_, FAILED);
383 384
384 state_ = new_state; 385 state_ = new_state;
385 if (state_change_callback_.get()) 386 if (!state_change_callback_.is_null())
386 state_change_callback_->Run(new_state); 387 state_change_callback_.Run(new_state);
387 } 388 }
388 } 389 }
389 390
390 } // namespace protocol 391 } // namespace protocol
391 } // namespace remoting 392 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/protocol/pepper_session.h ('k') | remoting/protocol/pepper_session_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698