Index: remoting/protocol/ice_transport.h |
diff --git a/remoting/protocol/ice_transport.h b/remoting/protocol/ice_transport.h |
index fc72b29d5664e3f46461a2bf2b1e336409747475..60e42114f9619942bd6d927f4029e14929d8a256 100644 |
--- a/remoting/protocol/ice_transport.h |
+++ b/remoting/protocol/ice_transport.h |
@@ -27,16 +27,28 @@ class IceTransport : public Transport, |
public IceTransportChannel::Delegate, |
public DatagramChannelFactory { |
public: |
+ class EventHandler { |
+ public: |
+ // Called when transport route changes. |
+ virtual void OnIceTransportRouteChange(const std::string& channel_name, |
+ const TransportRoute& route) = 0; |
+ |
+ // Called when there is an error connecting the session. |
+ virtual void OnIceTransportError(ErrorCode error) = 0; |
+ }; |
+ |
// |transport_context| must outlive the session. |
- explicit IceTransport(scoped_refptr<TransportContext> transport_context); |
+ IceTransport(scoped_refptr<TransportContext> transport_context, |
+ EventHandler* event_handler); |
~IceTransport() override; |
+ StreamChannelFactory* GetStreamChannelFactory(); |
+ StreamChannelFactory* GetMultiplexedChannelFactory(); |
+ |
// Transport interface. |
- void Start(EventHandler* event_handler, |
- Authenticator* authenticator) override; |
+ void Start(Authenticator* authenticator, |
+ SendTransportInfoCallback send_transport_info_callback) override; |
bool ProcessTransportInfo(buzz::XmlElement* transport_info) override; |
- StreamChannelFactory* GetStreamChannelFactory() override; |
- StreamChannelFactory* GetMultiplexedChannelFactory() override; |
private: |
typedef std::map<std::string, IceTransportChannel*> ChannelsMap; |
@@ -51,15 +63,15 @@ class IceTransport : public Transport, |
void AddPendingRemoteTransportInfo(IceTransportChannel* channel); |
// IceTransportChannel::Delegate interface. |
- void OnTransportIceCredentials(IceTransportChannel* transport, |
- const std::string& ufrag, |
- const std::string& password) override; |
- void OnTransportCandidate(IceTransportChannel* transport, |
- const cricket::Candidate& candidate) override; |
- void OnTransportRouteChange(IceTransportChannel* transport, |
- const TransportRoute& route) override; |
- void OnTransportFailed(IceTransportChannel* transport) override; |
- void OnTransportDeleted(IceTransportChannel* transport) override; |
+ void OnChannelIceCredentials(IceTransportChannel* transport, |
+ const std::string& ufrag, |
+ const std::string& password) override; |
+ void OnChannelCandidate(IceTransportChannel* transport, |
+ const cricket::Candidate& candidate) override; |
+ void OnChannelRouteChange(IceTransportChannel* transport, |
+ const TransportRoute& route) override; |
+ void OnChannelFailed(IceTransportChannel* transport) override; |
+ void OnChannelDeleted(IceTransportChannel* transport) override; |
// Creates empty |pending_transport_info_message_| and schedules timer for |
// SentTransportInfo() to sent the message later. |
@@ -69,8 +81,9 @@ class IceTransport : public Transport, |
void SendTransportInfo(); |
scoped_refptr<TransportContext> transport_context_; |
+ EventHandler* event_handler_; |
- Transport::EventHandler* event_handler_ = nullptr; |
+ SendTransportInfoCallback send_transport_info_callback_; |
ChannelsMap channels_; |
scoped_ptr<PseudoTcpChannelFactory> pseudotcp_channel_factory_; |
@@ -90,20 +103,6 @@ class IceTransport : public Transport, |
DISALLOW_COPY_AND_ASSIGN(IceTransport); |
}; |
-class IceTransportFactory : public TransportFactory { |
- public: |
- IceTransportFactory(scoped_refptr<TransportContext> transport_context); |
- ~IceTransportFactory() override; |
- |
- // TransportFactory interface. |
- scoped_ptr<Transport> CreateTransport() override; |
- |
- private: |
- scoped_refptr<TransportContext> transport_context_; |
- |
- DISALLOW_COPY_AND_ASSIGN(IceTransportFactory); |
-}; |
- |
} // namespace protocol |
} // namespace remoting |