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