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/socket/udp_event_emitter.h" 6 7 #include "sdk_util/auto_lock.h" 8 9 namespace nacl_io { 10 UdpEventEmitter(size_t rsize,size_t wsize)11UdpEventEmitter::UdpEventEmitter(size_t rsize, size_t wsize) 12 : in_fifo_(rsize), out_fifo_(wsize) { 13 UpdateStatus_Locked(); 14 } 15 ReadRXPacket_Locked()16Packet* UdpEventEmitter::ReadRXPacket_Locked() { 17 Packet* packet = in_fifo_.ReadPacket(); 18 19 UpdateStatus_Locked(); 20 return packet; 21 } 22 WriteRXPacket_Locked(Packet * packet)23void UdpEventEmitter::WriteRXPacket_Locked(Packet* packet) { 24 in_fifo_.WritePacket(packet); 25 26 UpdateStatus_Locked(); 27 } 28 ReadTXPacket_Locked()29Packet* UdpEventEmitter::ReadTXPacket_Locked() { 30 Packet* packet = out_fifo_.ReadPacket(); 31 32 UpdateStatus_Locked(); 33 return packet; 34 } 35 WriteTXPacket_Locked(Packet * packet)36void UdpEventEmitter::WriteTXPacket_Locked(Packet* packet) { 37 out_fifo_.WritePacket(packet); 38 39 UpdateStatus_Locked(); 40 } 41 42 } // namespace nacl_io 43