native_messaging_writer.h revision 010d83a9304c5a91596085d917d248abff47903a
1aa4115a47c554a936fdf5e6679e72a9329fecf45Theodore Ts'o// Copyright 2013 The Chromium Authors. All rights reserved. 2aa4115a47c554a936fdf5e6679e72a9329fecf45Theodore Ts'o// Use of this source code is governed by a BSD-style license that can be 3aa4115a47c554a936fdf5e6679e72a9329fecf45Theodore Ts'o// found in the LICENSE file. 4aa4115a47c554a936fdf5e6679e72a9329fecf45Theodore Ts'o 5aa4115a47c554a936fdf5e6679e72a9329fecf45Theodore Ts'o#ifndef REMOTING_HOST_NATIVE_MESSAGING_NATIVE_MESSAGING_WRITER_H_ 6aa4115a47c554a936fdf5e6679e72a9329fecf45Theodore Ts'o#define REMOTING_HOST_NATIVE_MESSAGING_NATIVE_MESSAGING_WRITER_H_ 7aa4115a47c554a936fdf5e6679e72a9329fecf45Theodore Ts'o 8aa4115a47c554a936fdf5e6679e72a9329fecf45Theodore Ts'o#include "base/files/file.h" 9aa4115a47c554a936fdf5e6679e72a9329fecf45Theodore Ts'o 10aa4115a47c554a936fdf5e6679e72a9329fecf45Theodore Ts'onamespace base { 11aa4115a47c554a936fdf5e6679e72a9329fecf45Theodore Ts'oclass Value; 12efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o} // namespace base 13efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o 14efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'onamespace remoting { 15efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o 16efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o// This class is used for sending messages to the Native Messaging client 17efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o// webapp. 18efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'oclass NativeMessagingWriter { 19aa4115a47c554a936fdf5e6679e72a9329fecf45Theodore Ts'o public: 20aa4115a47c554a936fdf5e6679e72a9329fecf45Theodore Ts'o explicit NativeMessagingWriter(base::File file); 21aa4115a47c554a936fdf5e6679e72a9329fecf45Theodore Ts'o ~NativeMessagingWriter(); 22aa4115a47c554a936fdf5e6679e72a9329fecf45Theodore Ts'o 23 // Sends a message to the Native Messaging client, returning true if 24 // successful. 25 bool WriteMessage(const base::Value& message); 26 27 private: 28 base::File write_stream_; 29 bool fail_; 30 31 DISALLOW_COPY_AND_ASSIGN(NativeMessagingWriter); 32}; 33 34} // namespace remoting 35 36#endif // REMOTING_HOST_NATIVE_MESSAGING_NATIVE_MESSAGING_WRITER_H_ 37