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

Side by Side Diff: remoting/protocol/jingle_session.h

Issue 18295009: Allow transport candidates to arrive after the authentication accepted message. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Factor out pending candidate handling Created 7 years, 5 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 | « no previous file | remoting/protocol/jingle_session.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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 REMOTING_PROTOCOL_JINGLE_SESSION_H_ 5 #ifndef REMOTING_PROTOCOL_JINGLE_SESSION_H_
6 #define REMOTING_PROTOCOL_JINGLE_SESSION_H_ 6 #define REMOTING_PROTOCOL_JINGLE_SESSION_H_
7 7
8 #include <list> 8 #include <list>
9 #include <map> 9 #include <map>
10 #include <set> 10 #include <set>
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 typedef std::map<std::string, Transport*> ChannelsMap; 79 typedef std::map<std::string, Transport*> ChannelsMap;
80 typedef base::Callback<void(JingleMessageReply::ErrorType)> ReplyCallback; 80 typedef base::Callback<void(JingleMessageReply::ErrorType)> ReplyCallback;
81 81
82 explicit JingleSession(JingleSessionManager* session_manager); 82 explicit JingleSession(JingleSessionManager* session_manager);
83 83
84 // Start connection by sending session-initiate message. 84 // Start connection by sending session-initiate message.
85 void StartConnection(const std::string& peer_jid, 85 void StartConnection(const std::string& peer_jid,
86 scoped_ptr<Authenticator> authenticator, 86 scoped_ptr<Authenticator> authenticator,
87 scoped_ptr<CandidateSessionConfig> config); 87 scoped_ptr<CandidateSessionConfig> config);
88 88
89 // Adds to a new channel the remote candidates received before it was created.
90 void AddPendingRemoteCandidates(Transport* channel, const std::string& name);
91
89 // Called by JingleSessionManager for incoming connections. 92 // Called by JingleSessionManager for incoming connections.
90 void InitializeIncomingConnection(const JingleMessage& initiate_message, 93 void InitializeIncomingConnection(const JingleMessage& initiate_message,
91 scoped_ptr<Authenticator> authenticator); 94 scoped_ptr<Authenticator> authenticator);
92 void AcceptIncomingConnection(const JingleMessage& initiate_message); 95 void AcceptIncomingConnection(const JingleMessage& initiate_message);
93 96
94 // Sends |message| to the peer. The session is closed if the send fails or no 97 // Sends |message| to the peer. The session is closed if the send fails or no
95 // response is received within a reasonable time. All other responses are 98 // response is received within a reasonable time. All other responses are
96 // ignored. 99 // ignored.
97 void SendMessage(const JingleMessage& message); 100 void SendMessage(const JingleMessage& message);
98 101
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 162
160 // Pending transport-info requests. 163 // Pending transport-info requests.
161 std::list<IqRequest*> transport_info_requests_; 164 std::list<IqRequest*> transport_info_requests_;
162 165
163 ChannelsMap channels_; 166 ChannelsMap channels_;
164 scoped_ptr<ChannelMultiplexer> channel_multiplexer_; 167 scoped_ptr<ChannelMultiplexer> channel_multiplexer_;
165 168
166 base::OneShotTimer<JingleSession> transport_infos_timer_; 169 base::OneShotTimer<JingleSession> transport_infos_timer_;
167 std::list<JingleMessage::NamedCandidate> pending_candidates_; 170 std::list<JingleMessage::NamedCandidate> pending_candidates_;
168 171
172 // Pending remote candidates, received before the local channels were created.
173 std::list<JingleMessage::NamedCandidate> pending_remote_candidates_;
174
169 DISALLOW_COPY_AND_ASSIGN(JingleSession); 175 DISALLOW_COPY_AND_ASSIGN(JingleSession);
170 }; 176 };
171 177
172 } // namespace protocol 178 } // namespace protocol
173 } // namespace remoting 179 } // namespace remoting
174 180
175 #endif // REMOTING_PROTOCOL_JINGLE_SESSION_H_ 181 #endif // REMOTING_PROTOCOL_JINGLE_SESSION_H_
OLDNEW
« no previous file with comments | « no previous file | remoting/protocol/jingle_session.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698