| Index: remoting/protocol/transport.h
|
| diff --git a/remoting/protocol/transport.h b/remoting/protocol/transport.h
|
| index 99aab7b5e2f2a939f77629333da535a7b9e0ced2..c9f24d36fa9ed8363cb7c3a27adb2c6ca0c45f89 100644
|
| --- a/remoting/protocol/transport.h
|
| +++ b/remoting/protocol/transport.h
|
| @@ -14,10 +14,6 @@
|
| #include "net/base/ip_endpoint.h"
|
| #include "remoting/protocol/errors.h"
|
|
|
| -namespace cricket {
|
| -class Candidate;
|
| -} // namespace cricket
|
| -
|
| namespace buzz {
|
| class XmlElement;
|
| } // namespace buzz
|
| @@ -33,7 +29,6 @@ class Authenticator;
|
| class DatagramChannelFactory;
|
| class P2PDatagramSocket;
|
| class StreamChannelFactory;
|
| -class WebrtcTransport;
|
|
|
| enum class TransportRole {
|
| SERVER,
|
| @@ -58,68 +53,22 @@ struct TransportRoute {
|
| net::IPEndPoint local_address;
|
| };
|
|
|
| -// Transport represents a P2P connection that consists of one or more
|
| -// channels.
|
| +// Transport represents a P2P connection that consists of one or more channels.
|
| +// This interface is used just to send and receive transport-info messages.
|
| +// Implementations should provide other methods to send and receive data.
|
| class Transport {
|
| public:
|
| - class EventHandler {
|
| - public:
|
| - // Called to send a transport-info message.
|
| - virtual void OnOutgoingTransportInfo(
|
| - scoped_ptr<buzz::XmlElement> message) = 0;
|
| -
|
| - // Called when transport route changes.
|
| - virtual void OnTransportRouteChange(const std::string& channel_name,
|
| - const TransportRoute& route) = 0;
|
| -
|
| - // Called when the transport is connected.
|
| - virtual void OnTransportConnected() = 0;
|
| -
|
| - // Called when there is an error connecting the session.
|
| - virtual void OnTransportError(ErrorCode error) = 0;
|
| - };
|
| + typedef base::Callback<void(scoped_ptr<buzz::XmlElement> transport_info)>
|
| + SendTransportInfoCallback;
|
|
|
| - Transport() {}
|
| virtual ~Transport() {}
|
|
|
| - // Starts transport session. Both parameters must outlive Transport.
|
| - virtual void Start(EventHandler* event_handler,
|
| - Authenticator* authenticator) = 0;
|
| -
|
| - // Called to process incoming transport message. Returns false if
|
| - // |transport_info| is in invalid format.
|
| + // Sets the object responsible for delivering outgoing transport-info messages
|
| + // to the peer.
|
| + virtual void Start(
|
| + Authenticator* authenticator,
|
| + SendTransportInfoCallback send_transport_info_callback) = 0;
|
| virtual bool ProcessTransportInfo(buzz::XmlElement* transport_info) = 0;
|
| -
|
| - // Channel factory for the session that creates stream channels.
|
| - virtual StreamChannelFactory* GetStreamChannelFactory() = 0;
|
| -
|
| - // Returns a factory that creates multiplexed channels over a single stream
|
| - // channel.
|
| - virtual StreamChannelFactory* GetMultiplexedChannelFactory() = 0;
|
| -
|
| - // Returns the transport as WebrtcTransport or nullptr if this is not a
|
| - // WebrtcTransport.
|
| - //
|
| - // TODO(sergeyu): Move creation and ownership of Transport objects to the
|
| - // Connection classes. That way the Connection classes will be able to ensure
|
| - // that correct transport implementation is used for the connection and this
|
| - // method will not be necessary.
|
| - virtual WebrtcTransport* AsWebrtcTransport();
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(Transport);
|
| -};
|
| -
|
| -class TransportFactory {
|
| - public:
|
| - TransportFactory() { }
|
| - virtual ~TransportFactory() { }
|
| -
|
| - // Creates a new Transport. The factory must outlive the session.
|
| - virtual scoped_ptr<Transport> CreateTransport() = 0;
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(TransportFactory);
|
| };
|
|
|
| } // namespace protocol
|
|
|