1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "nacl_io/pipe/pipe_event_emitter.h"
6
7#include <algorithm>
8
9namespace nacl_io {
10
11PipeEventEmitter::PipeEventEmitter(size_t size)
12    : fifo_(std::max<size_t>(1, size)) {
13  UpdateStatus_Locked();
14}
15
16Error PipeEventEmitter::Read_Locked(char* data, size_t len, int* out_bytes) {
17  *out_bytes = fifo_.Read(data, len);
18
19  UpdateStatus_Locked();
20  return 0;
21}
22
23Error PipeEventEmitter::Write_Locked(const char* data,
24                                     size_t len,
25                                     int* out_bytes) {
26  *out_bytes = fifo_.Write(data, len);
27
28  UpdateStatus_Locked();
29  return 0;
30}
31
32}  // namespace nacl_io
33