native_messaging_writer.h revision 0f1bc08d4cfcc34181b0b5cbf065c40f687bf740
19d69d4aadd4a58aba5634d5c3d2c2a6d8d284134Chris Lattner// Copyright 2013 The Chromium Authors. All rights reserved.
29d69d4aadd4a58aba5634d5c3d2c2a6d8d284134Chris Lattner// Use of this source code is governed by a BSD-style license that can be
39d69d4aadd4a58aba5634d5c3d2c2a6d8d284134Chris Lattner// found in the LICENSE file.
49d69d4aadd4a58aba5634d5c3d2c2a6d8d284134Chris Lattner
59d69d4aadd4a58aba5634d5c3d2c2a6d8d284134Chris Lattner#ifndef REMOTING_HOST_NATIVE_MESSAGING_NATIVE_MESSAGING_WRITER_H_
69d69d4aadd4a58aba5634d5c3d2c2a6d8d284134Chris Lattner#define REMOTING_HOST_NATIVE_MESSAGING_NATIVE_MESSAGING_WRITER_H_
79d69d4aadd4a58aba5634d5c3d2c2a6d8d284134Chris Lattner
89d69d4aadd4a58aba5634d5c3d2c2a6d8d284134Chris Lattner#include "base/platform_file.h"
99d69d4aadd4a58aba5634d5c3d2c2a6d8d284134Chris Lattner#include "net/base/file_stream.h"
109d69d4aadd4a58aba5634d5c3d2c2a6d8d284134Chris Lattner
119d69d4aadd4a58aba5634d5c3d2c2a6d8d284134Chris Lattnernamespace base {
129d69d4aadd4a58aba5634d5c3d2c2a6d8d284134Chris Lattnerclass Value;
13ac5802bca0285eee49c1c372846552823d819181Benjamin Kramer}  // namespace base
149d69d4aadd4a58aba5634d5c3d2c2a6d8d284134Chris Lattner
15147d9e05116518461653695a6022f6109f0eb936Chandler Carruthnamespace remoting {
169d69d4aadd4a58aba5634d5c3d2c2a6d8d284134Chris Lattner
179d69d4aadd4a58aba5634d5c3d2c2a6d8d284134Chris Lattner// This class is used for sending messages to the Native Messaging client
189d69d4aadd4a58aba5634d5c3d2c2a6d8d284134Chris Lattner// webapp.
199d69d4aadd4a58aba5634d5c3d2c2a6d8d284134Chris Lattnerclass NativeMessagingWriter {
209d69d4aadd4a58aba5634d5c3d2c2a6d8d284134Chris Lattner public:
219d69d4aadd4a58aba5634d5c3d2c2a6d8d284134Chris Lattner  explicit NativeMessagingWriter(base::PlatformFile handle);
229d69d4aadd4a58aba5634d5c3d2c2a6d8d284134Chris Lattner  ~NativeMessagingWriter();
239d69d4aadd4a58aba5634d5c3d2c2a6d8d284134Chris Lattner
249d69d4aadd4a58aba5634d5c3d2c2a6d8d284134Chris Lattner  // Sends a message to the Native Messaging client, returning true if
259d69d4aadd4a58aba5634d5c3d2c2a6d8d284134Chris Lattner  // successful.
269d69d4aadd4a58aba5634d5c3d2c2a6d8d284134Chris Lattner  bool WriteMessage(const base::Value& message);
279d69d4aadd4a58aba5634d5c3d2c2a6d8d284134Chris Lattner
289d69d4aadd4a58aba5634d5c3d2c2a6d8d284134Chris Lattner private:
2940dab1059e72d3af59f2523fa8a7d05f40dafca5Chandler Carruth  net::FileStream write_stream_;
3040dab1059e72d3af59f2523fa8a7d05f40dafca5Chandler Carruth  bool fail_;
319d69d4aadd4a58aba5634d5c3d2c2a6d8d284134Chris Lattner
32b4c28fc93f5149a0bd7967af44c429412e751c56Chandler Carruth  DISALLOW_COPY_AND_ASSIGN(NativeMessagingWriter);
339d69d4aadd4a58aba5634d5c3d2c2a6d8d284134Chris Lattner};
3406bd8ca8c276d9bc20b192188224e1e5215666a0Chandler Carruth
3506bd8ca8c276d9bc20b192188224e1e5215666a0Chandler Carruth}  // namespace remoting
3606bd8ca8c276d9bc20b192188224e1e5215666a0Chandler Carruth
3706bd8ca8c276d9bc20b192188224e1e5215666a0Chandler Carruth#endif  // REMOTING_HOST_NATIVE_MESSAGING_NATIVE_MESSAGING_WRITER_H_
3806bd8ca8c276d9bc20b192188224e1e5215666a0Chandler Carruth