Index: mojo/data_pipe_utils/data_pipe_utils.cc |
diff --git a/mojo/data_pipe_utils/data_pipe_utils.cc b/mojo/data_pipe_utils/data_pipe_utils.cc |
index af9f2062bd7c045a7d5d2c23faf7424aa0e4abc1..dd989c4399bd7d991ff89db3ba666767903f1ae2 100644 |
--- a/mojo/data_pipe_utils/data_pipe_utils.cc |
+++ b/mojo/data_pipe_utils/data_pipe_utils.cc |
@@ -111,5 +111,20 @@ bool BlockingCopyFromString(const std::string& source, |
} |
} |
+mojo::ScopedDataPipeConsumerHandle WriteStringToConsumerHandle( |
+ const std::string& source) { |
+ mojo::ScopedDataPipeConsumerHandle consumer; |
+ mojo::ScopedDataPipeProducerHandle producer; |
+ static const size_t max_buffer_size = 2 * 1024 * 1024; // 2MB |
+ DCHECK_LE(source.size(), max_buffer_size); |
+ MojoCreateDataPipeOptions options = { |
+ sizeof(MojoCreateDataPipeOptions), |
+ MOJO_CREATE_DATA_PIPE_OPTIONS_FLAG_NONE, 1, |
+ std::min(source.size(), max_buffer_size)}; |
+ mojo::CreateDataPipe(&options, &producer, &consumer); |
+ BlockingCopyFromString(source, producer); |
+ return consumer.Pass(); |
+} |
+ |
} // namespace common |
} // namespace mojo |