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 9 namespace nacl_io { 10 11 PipeEventEmitter::PipeEventEmitter(size_t size) 12 : fifo_(std::max<size_t>(1, size)) { 13 UpdateStatus_Locked(); 14 } 15 16 Error 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 23 Error 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