Index: remoting/protocol/stream_message_pipe_adapter.h |
diff --git a/remoting/protocol/stream_message_pipe_adapter.h b/remoting/protocol/stream_message_pipe_adapter.h |
index 15f7e1ded5c6e999651dcce2877143fad9d9dc07..37d694ead35d715996e2c1e957f574b2c108279c 100644 |
--- a/remoting/protocol/stream_message_pipe_adapter.h |
+++ b/remoting/protocol/stream_message_pipe_adapter.h |
@@ -6,6 +6,7 @@ |
#define REMOTING_PROTOCOL_STREAM_MESSAGE_PIPE_ADAPTER_H_ |
#include "base/callback.h" |
+#include "remoting/protocol/message_channel_factory.h" |
#include "remoting/protocol/message_pipe.h" |
#include "remoting/protocol/message_reader.h" |
@@ -15,6 +16,7 @@ class BufferedSocketWriter; |
namespace protocol { |
class P2PStreamSocket; |
+class StreamChannelFactory; |
// MessagePipe implementation that sends and receives messages over a |
// P2PStreamChannel. |
@@ -43,6 +45,30 @@ class StreamMessagePipeAdapter : public MessagePipe { |
DISALLOW_COPY_AND_ASSIGN(StreamMessagePipeAdapter); |
}; |
+class StreamMessageChannelFactoryAdapter : public MessageChannelFactory { |
+ public: |
+ typedef base::Callback<void(int)> ErrorCallback; |
+ |
+ StreamMessageChannelFactoryAdapter( |
+ StreamChannelFactory* stream_channel_factory, |
+ const ErrorCallback& error_callback); |
+ ~StreamMessageChannelFactoryAdapter() override; |
+ |
+ // MessageChannelFactory interface. |
+ void CreateChannel(const std::string& name, |
+ const ChannelCreatedCallback& callback) override; |
+ void CancelChannelCreation(const std::string& name) override; |
+ |
+ private: |
+ void OnChannelCreated(const ChannelCreatedCallback& callback, |
+ scoped_ptr<P2PStreamSocket> socket); |
+ |
+ StreamChannelFactory* stream_channel_factory_; |
+ ErrorCallback error_callback_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(StreamMessageChannelFactoryAdapter); |
+}; |
+ |
} // namespace protocol |
} // namespace remoting |