summaryrefslogtreecommitdiffstats
path: root/remoting/protocol/stream_writer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'remoting/protocol/stream_writer.cc')
-rw-r--r--remoting/protocol/stream_writer.cc47
1 files changed, 47 insertions, 0 deletions
diff --git a/remoting/protocol/stream_writer.cc b/remoting/protocol/stream_writer.cc
new file mode 100644
index 0000000..3269a1b
--- /dev/null
+++ b/remoting/protocol/stream_writer.cc
@@ -0,0 +1,47 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "remoting/protocol/stream_writer.h"
+
+#include "base/message_loop.h"
+#include "remoting/protocol/chromoting_connection.h"
+#include "remoting/protocol/util.h"
+
+namespace remoting {
+
+StreamWriterBase::StreamWriterBase()
+ : socket_(NULL),
+ buffered_writer_(new BufferedSocketWriter()) {
+}
+
+StreamWriterBase::~StreamWriterBase() { }
+
+void StreamWriterBase::Init(net::Socket* socket) {
+ socket_ = socket;
+ buffered_writer_->Init(socket, NULL);
+}
+
+int StreamWriterBase::GetBufferSize() {
+ return buffered_writer_->GetBufferSize();
+}
+
+int StreamWriterBase::GetPendingMessages() {
+ return buffered_writer_->GetBufferChunks();
+}
+
+void StreamWriterBase::Close() {
+ buffered_writer_->Close();
+}
+
+bool EventsStreamWriter::SendMessage(
+ const ChromotingClientMessage& message) {
+ return buffered_writer_->Write(SerializeAndFrameMessage(message));
+}
+
+bool VideoStreamWriter::SendMessage(
+ const ChromotingHostMessage& message) {
+ return buffered_writer_->Write(SerializeAndFrameMessage(message));
+}
+
+} // namespace remoting