OLD | NEW |
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 #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 "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
9 #include "base/memory/weak_ptr.h" | 9 #include "base/memory/weak_ptr.h" |
10 #include "net/base/completion_callback.h" | 10 #include "net/base/completion_callback.h" |
(...skipping 12 matching lines...) Expand all Loading... |
23 // cricket::Session object is passed to Init() method). Created | 23 // cricket::Session object is passed to Init() method). Created |
24 // by JingleSessionManager for incoming and outgoing connections. | 24 // by JingleSessionManager for incoming and outgoing connections. |
25 class JingleSession : public protocol::Session, | 25 class JingleSession : public protocol::Session, |
26 public sigslot::has_slots<> { | 26 public sigslot::has_slots<> { |
27 public: | 27 public: |
28 virtual ~JingleSession(); | 28 virtual ~JingleSession(); |
29 | 29 |
30 // Session interface. | 30 // Session interface. |
31 virtual void SetStateChangeCallback( | 31 virtual void SetStateChangeCallback( |
32 const StateChangeCallback& callback) OVERRIDE; | 32 const StateChangeCallback& callback) OVERRIDE; |
| 33 virtual void SetRouteChangeCallback( |
| 34 const RouteChangeCallback& callback) OVERRIDE; |
33 virtual Error error() OVERRIDE; | 35 virtual Error error() OVERRIDE; |
34 virtual void CreateStreamChannel( | 36 virtual void CreateStreamChannel( |
35 const std::string& name, | 37 const std::string& name, |
36 const StreamChannelCallback& callback) OVERRIDE; | 38 const StreamChannelCallback& callback) OVERRIDE; |
37 virtual void CreateDatagramChannel( | 39 virtual void CreateDatagramChannel( |
38 const std::string& name, | 40 const std::string& name, |
39 const DatagramChannelCallback& callback) OVERRIDE; | 41 const DatagramChannelCallback& callback) OVERRIDE; |
40 virtual void CancelChannelCreation(const std::string& name) OVERRIDE; | 42 virtual void CancelChannelCreation(const std::string& name) OVERRIDE; |
41 virtual const std::string& jid() OVERRIDE; | 43 virtual const std::string& jid() OVERRIDE; |
42 virtual const CandidateSessionConfig* candidate_config() OVERRIDE; | 44 virtual const CandidateSessionConfig* candidate_config() OVERRIDE; |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
97 | 99 |
98 void AddChannelConnector(const std::string& name, | 100 void AddChannelConnector(const std::string& name, |
99 JingleChannelConnector* connector); | 101 JingleChannelConnector* connector); |
100 | 102 |
101 // Called by JingleChannelConnector when it has finished connecting | 103 // Called by JingleChannelConnector when it has finished connecting |
102 // the channel, to remove itself from the table of pending connectors. The | 104 // the channel, to remove itself from the table of pending connectors. The |
103 // connector assumes responsibility for destroying itself after this call. | 105 // connector assumes responsibility for destroying itself after this call. |
104 void OnChannelConnectorFinished(const std::string& name, | 106 void OnChannelConnectorFinished(const std::string& name, |
105 JingleChannelConnector* connector); | 107 JingleChannelConnector* connector); |
106 | 108 |
| 109 void OnRouteChange(cricket::TransportChannel* channel, |
| 110 const cricket::Candidate& candidate); |
| 111 |
107 const cricket::ContentInfo* GetContentInfo() const; | 112 const cricket::ContentInfo* GetContentInfo() const; |
108 | 113 |
109 void SetState(State new_state); | 114 void SetState(State new_state); |
110 | 115 |
111 static scoped_ptr<cricket::SessionDescription> CreateSessionDescription( | 116 static scoped_ptr<cricket::SessionDescription> CreateSessionDescription( |
112 scoped_ptr<CandidateSessionConfig> candidate_config, | 117 scoped_ptr<CandidateSessionConfig> candidate_config, |
113 scoped_ptr<buzz::XmlElement> authenticator_message); | 118 scoped_ptr<buzz::XmlElement> authenticator_message); |
114 | 119 |
115 // JingleSessionManager that created this session. Guaranteed to | 120 // JingleSessionManager that created this session. Guaranteed to |
116 // exist throughout the lifetime of the session. | 121 // exist throughout the lifetime of the session. |
117 JingleSessionManager* jingle_session_manager_; | 122 JingleSessionManager* jingle_session_manager_; |
118 | 123 |
119 scoped_ptr<Authenticator> authenticator_; | 124 scoped_ptr<Authenticator> authenticator_; |
120 | 125 |
121 State state_; | 126 State state_; |
122 StateChangeCallback state_change_callback_; | 127 StateChangeCallback state_change_callback_; |
| 128 RouteChangeCallback route_change_callback_; |
123 | 129 |
124 Error error_; | 130 Error error_; |
125 | 131 |
126 bool closing_; | 132 bool closing_; |
127 | 133 |
128 // JID of the other side. Set when the connection is initialized, | 134 // JID of the other side. Set when the connection is initialized, |
129 // and never changed after that. | 135 // and never changed after that. |
130 std::string jid_; | 136 std::string jid_; |
131 | 137 |
132 // The corresponding libjingle session. | 138 // The corresponding libjingle session. |
(...skipping 16 matching lines...) Expand all Loading... |
149 base::WeakPtrFactory<JingleSession> weak_factory_; | 155 base::WeakPtrFactory<JingleSession> weak_factory_; |
150 | 156 |
151 DISALLOW_COPY_AND_ASSIGN(JingleSession); | 157 DISALLOW_COPY_AND_ASSIGN(JingleSession); |
152 }; | 158 }; |
153 | 159 |
154 } // namespace protocol | 160 } // namespace protocol |
155 | 161 |
156 } // namespace remoting | 162 } // namespace remoting |
157 | 163 |
158 #endif // REMOTING_PROTOCOL_JINGLE_SESSION_H_ | 164 #endif // REMOTING_PROTOCOL_JINGLE_SESSION_H_ |
OLD | NEW |