summaryrefslogtreecommitdiffstats
path: root/remoting/host/native_messaging/native_messaging_writer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'remoting/host/native_messaging/native_messaging_writer.cc')
-rw-r--r--remoting/host/native_messaging/native_messaging_writer.cc32
1 files changed, 5 insertions, 27 deletions
diff --git a/remoting/host/native_messaging/native_messaging_writer.cc b/remoting/host/native_messaging/native_messaging_writer.cc
index 9788f21..fdfc25a 100644
--- a/remoting/host/native_messaging/native_messaging_writer.cc
+++ b/remoting/host/native_messaging/native_messaging_writer.cc
@@ -25,33 +25,12 @@ const int kMessageHeaderSize = sizeof(MessageLengthType);
// result of std::string::length() without compiler warnings.
const size_t kMaximumMessageSize = 1024 * 1024;
-// Performs the same task as FileStream::WriteSync(), but ensures that exactly
-// |buffer_length| bytes are written. Unlike WriteSync(), a partial write may
-// only occur as a result of end-of-file or fatal error. Returns the number of
-// bytes written (buffer_length) or an error-code <= 0.
-//
-// TODO(lambroslambrou): Add this method to net::FileStream, with unit-tests.
-// See http://crbug.com/232202.
-int WriteUntilComplete(net::FileStream* out,
- const char* buffer, int buffer_length) {
- int written = 0;
- while (written < buffer_length) {
- int result = out->WriteSync(buffer + written, buffer_length - written);
- if (result <= 0) {
- return result;
- }
- DCHECK_LE(result, buffer_length - written);
- written += result;
- }
- return written;
-}
-
} // namespace
namespace remoting {
NativeMessagingWriter::NativeMessagingWriter(base::PlatformFile handle)
- : write_stream_(handle, base::PLATFORM_FILE_WRITE, NULL),
+ : write_stream_(handle),
fail_(false) {
}
@@ -74,9 +53,8 @@ bool NativeMessagingWriter::WriteMessage(const base::Value& message) {
MessageLengthType message_length =
static_cast<MessageLengthType>(message_json.length());
- int result = WriteUntilComplete(
- &write_stream_, reinterpret_cast<char*>(&message_length),
- kMessageHeaderSize);
+ int result = write_stream_.WriteAtCurrentPos(
+ reinterpret_cast<char*>(&message_length), kMessageHeaderSize);
if (result != kMessageHeaderSize) {
LOG(ERROR) << "Failed to send message header, write returned " << result;
fail_ = true;
@@ -89,8 +67,8 @@ bool NativeMessagingWriter::WriteMessage(const base::Value& message) {
// CHECK needed since data() is undefined on an empty std::string.
CHECK(!message_json.empty());
- result = WriteUntilComplete(&write_stream_, message_json.data(),
- message_length_as_int);
+ result = write_stream_.WriteAtCurrentPos(message_json.data(),
+ message_length_as_int);
if (result != message_length_as_int) {
LOG(ERROR) << "Failed to send message body, write returned " << result;
fail_ = true;