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