Chromium Code Reviews| Index: talk/app/webrtc/webrtcsession.h |
| diff --git a/talk/app/webrtc/webrtcsession.h b/talk/app/webrtc/webrtcsession.h |
| index bb405c5da47657635076545757950c06da95c71b..e85101e816d0ca6c0f1e50f4f9cd97b462138bd3 100644 |
| --- a/talk/app/webrtc/webrtcsession.h |
| +++ b/talk/app/webrtc/webrtcsession.h |
| @@ -29,6 +29,7 @@ |
| #define TALK_APP_WEBRTC_WEBRTCSESSION_H_ |
| #include <string> |
| +#include <vector> |
| #include "talk/app/webrtc/datachannel.h" |
| #include "talk/app/webrtc/dtmfsender.h" |
| @@ -48,7 +49,6 @@ class BaseChannel; |
| class ChannelManager; |
| class DataChannel; |
| class StatsReport; |
| -class Transport; |
| class VideoCapturer; |
| class VideoChannel; |
| class VoiceChannel; |
| @@ -76,6 +76,8 @@ extern const char kSessionError[]; |
| extern const char kSessionErrorDesc[]; |
| extern const char kDtlsSetupFailureRtp[]; |
| extern const char kDtlsSetupFailureRtcp[]; |
| +extern const char kEnableBundleFailed[]; |
| + |
| // Maximum number of received video streams that will be processed by webrtc |
| // even if they are not signalled beforehand. |
| extern const int kMaxUnsignalledRecvStreams; |
| @@ -235,6 +237,19 @@ class WebRtcSession : public cricket::BaseSession, |
| // This avoids exposing the internal structures used to track them. |
| virtual bool GetTransportStats(cricket::SessionStats* stats); |
| + // Get stats for a specific channel |
| + bool GetChannelTransportStats(cricket::BaseChannel* ch, |
| + cricket::SessionStats* stats); |
| + |
| + // virtual so it can be mocked in unit tests |
| + virtual bool GetCertificate( |
| + const std::string& content_name, |
| + rtc::scoped_refptr<rtc::RTCCertificate>* certificate); |
| + |
| + // Caller owns returned certificate |
| + virtual bool GetRemoteCertificate(const std::string& content_name, |
| + rtc::SSLCertificate** cert); |
| + |
| // Implements DataChannelFactory. |
| rtc::scoped_refptr<DataChannel> CreateDataChannel( |
| const std::string& label, |
| @@ -254,6 +269,7 @@ class WebRtcSession : public cricket::BaseSession, |
| // For unit test. |
| bool waiting_for_certificate_for_testing() const; |
| + rtc::scoped_refptr<rtc::RTCCertificate> certificate_for_testing(); |
|
pthatcher1
2015/08/31 22:01:35
This seems a little odd. Can you comment on why t
Taylor Brandstetter
2015/09/01 23:53:30
It's used for a unit test. This is just part of a
|
| void set_metrics_observer( |
| webrtc::MetricsObserverInterface* metrics_observer) { |
| @@ -269,9 +285,6 @@ class WebRtcSession : public cricket::BaseSession, |
| kAnswer, |
| }; |
| - // Invokes ConnectChannels() on transport proxies, which initiates ice |
| - // candidates allocation. |
| - bool StartCandidatesAllocation(); |
| bool UpdateSessionState(Action action, cricket::ContentSource source, |
| std::string* err_desc); |
| static Action GetAction(const std::string& type); |
| @@ -281,25 +294,13 @@ class WebRtcSession : public cricket::BaseSession, |
| cricket::ContentSource source, |
| std::string* error_desc); |
| - |
| - // Transport related callbacks, override from cricket::BaseSession. |
| - virtual void OnTransportRequestSignaling(cricket::Transport* transport); |
| - virtual void OnTransportConnecting(cricket::Transport* transport); |
| - virtual void OnTransportWritable(cricket::Transport* transport); |
| - virtual void OnTransportCompleted(cricket::Transport* transport); |
| - virtual void OnTransportFailed(cricket::Transport* transport); |
| - virtual void OnTransportProxyCandidatesReady( |
| - cricket::TransportProxy* proxy, |
| - const cricket::Candidates& candidates); |
| - virtual void OnCandidatesAllocationDone(); |
| - void OnTransportReceiving(cricket::Transport* transport) override; |
| + cricket::BaseChannel* GetChannel(const std::string& content_name); |
| + // Cause all the BaseChannels in the bundle group to have the same |
| + // transport channel. |
| + bool EnableBundle(const cricket::ContentGroup& bundle); |
| // Enables media channels to allow sending of media. |
| void EnableChannels(); |
| - // Creates a JsepIceCandidate and adds it to the local session description |
| - // and notify observers. Called when a new local candidate have been found. |
| - void ProcessNewLocalCandidate(const std::string& content_name, |
| - const cricket::Candidates& candidates); |
| // Returns the media index for a local ice candidate given the content name. |
| // Returns false if the local session description does not have a media |
| // content called |content_name|. |
| @@ -312,8 +313,7 @@ class WebRtcSession : public cricket::BaseSession, |
| bool UseCandidate(const IceCandidateInterface* candidate); |
| // Deletes the corresponding channel of contents that don't exist in |desc|. |
| // |desc| can be null. This means that all channels are deleted. |
| - void RemoveUnusedChannelsAndTransports( |
| - const cricket::SessionDescription* desc); |
| + void RemoveUnusedChannels(const cricket::SessionDescription* desc); |
| // Allocates media channels based on the |desc|. If |desc| doesn't have |
| // the BUNDLE option, this method will disable BUNDLE in PortAllocator. |
| @@ -362,10 +362,17 @@ class WebRtcSession : public cricket::BaseSession, |
| const SessionDescriptionInterface* remote_desc, |
| bool* valid); |
| + void OnTransportControllerConnectionState(cricket::IceConnectionState state); |
| + void OnTransportControllerReceiving(bool receiving); |
| + void OnTransportControllerGatheringState(cricket::IceGatheringState state); |
| + void OnTransportControllerCandidatesGathered( |
| + const std::string& transport_name, |
| + const cricket::Candidates& candidates); |
| + |
| std::string GetSessionErrorMsg(); |
| - // Invoked when OnTransportCompleted is signaled to gather the usage |
| - // of IPv4/IPv6 as best connection. |
| + // Invoked when TransportController connection completion is signaled to |
| + // gather the usage of IPv4/IPv6 as best connection. |
| void ReportBestConnectionState(const cricket::TransportStats& stats); |
| void ReportNegotiatedCiphers(const cricket::TransportStats& stats); |