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

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

Issue 2164163002: Simplify data channel creation logic in WebRTC-based protocol (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: nits Created 4 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
« no previous file with comments | « remoting/protocol/webrtc_data_stream_adapter.cc ('k') | remoting/protocol/webrtc_transport.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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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_WEBRTC_TRANSPORT_H_ 5 #ifndef REMOTING_PROTOCOL_WEBRTC_TRANSPORT_H_
6 #define REMOTING_PROTOCOL_WEBRTC_TRANSPORT_H_ 6 #define REMOTING_PROTOCOL_WEBRTC_TRANSPORT_H_
7 7
8 #include <memory> 8 #include <memory>
9 #include <string> 9 #include <string>
10 10
(...skipping 11 matching lines...) Expand all
22 #include "third_party/webrtc/api/peerconnectioninterface.h" 22 #include "third_party/webrtc/api/peerconnectioninterface.h"
23 23
24 namespace webrtc { 24 namespace webrtc {
25 class FakeAudioDeviceModule; 25 class FakeAudioDeviceModule;
26 } // namespace webrtc 26 } // namespace webrtc
27 27
28 namespace remoting { 28 namespace remoting {
29 namespace protocol { 29 namespace protocol {
30 30
31 class TransportContext; 31 class TransportContext;
32 class MessageChannelFactory;
33 class MessagePipe; 32 class MessagePipe;
34 33
35 class WebrtcTransport : public Transport, 34 class WebrtcTransport : public Transport,
36 public webrtc::PeerConnectionObserver { 35 public webrtc::PeerConnectionObserver {
37 public: 36 public:
38 class EventHandler { 37 class EventHandler {
39 public: 38 public:
40 // Called after |peer_connection| has been created but before handshake. The 39 // Called after |peer_connection| has been created but before handshake. The
41 // handler should create data channels and media streams. Renegotiation will 40 // handler should create data channels and media streams. Renegotiation will
42 // be required in two cases after this method returns: 41 // be required in two cases after this method returns:
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 webrtc::PeerConnectionInterface* peer_connection() { 73 webrtc::PeerConnectionInterface* peer_connection() {
75 return peer_connection_; 74 return peer_connection_;
76 } 75 }
77 webrtc::PeerConnectionFactoryInterface* peer_connection_factory() { 76 webrtc::PeerConnectionFactoryInterface* peer_connection_factory() {
78 return peer_connection_factory_; 77 return peer_connection_factory_;
79 } 78 }
80 remoting::WebrtcVideoEncoderFactory* video_encoder_factory() { 79 remoting::WebrtcVideoEncoderFactory* video_encoder_factory() {
81 return video_encoder_factory_; 80 return video_encoder_factory_;
82 } 81 }
83 82
84 // Factory for outgoing data channels. Must be used only after the transport 83 // Creates outgoing data channel. The channel is created in CONNECTING state.
85 // is connected. 84 // The caller must wait for OnMessagePipeOpen() notification before sending
86 MessageChannelFactory* outgoing_channel_factory() { 85 // any messages.
87 return data_stream_adapter_.get(); 86 std::unique_ptr<MessagePipe> CreateOutgoingChannel(const std::string& name);
88 }
89 87
90 // Transport interface. 88 // Transport interface.
91 void Start(Authenticator* authenticator, 89 void Start(Authenticator* authenticator,
92 SendTransportInfoCallback send_transport_info_callback) override; 90 SendTransportInfoCallback send_transport_info_callback) override;
93 bool ProcessTransportInfo(buzz::XmlElement* transport_info) override; 91 bool ProcessTransportInfo(buzz::XmlElement* transport_info) override;
94 void Close(ErrorCode error); 92 void Close(ErrorCode error);
95 93
96 private: 94 private:
97 void OnLocalSessionDescriptionCreated( 95 void OnLocalSessionDescriptionCreated(
98 std::unique_ptr<webrtc::SessionDescriptionInterface> description, 96 std::unique_ptr<webrtc::SessionDescriptionInterface> description,
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 152
155 base::WeakPtrFactory<WebrtcTransport> weak_factory_; 153 base::WeakPtrFactory<WebrtcTransport> weak_factory_;
156 154
157 DISALLOW_COPY_AND_ASSIGN(WebrtcTransport); 155 DISALLOW_COPY_AND_ASSIGN(WebrtcTransport);
158 }; 156 };
159 157
160 } // namespace protocol 158 } // namespace protocol
161 } // namespace remoting 159 } // namespace remoting
162 160
163 #endif // REMOTING_PROTOCOL_WEBRTC_TRANSPORT_H_ 161 #endif // REMOTING_PROTOCOL_WEBRTC_TRANSPORT_H_
OLDNEW
« no previous file with comments | « remoting/protocol/webrtc_data_stream_adapter.cc ('k') | remoting/protocol/webrtc_transport.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698