1 // Copyright (c) 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.
5 #ifndef LIBRARIES_NACL_IO_EVENT_EMITTER_UDP_H_
6 #define LIBRARIES_NACL_IO_EVENT_EMITTER_UDP_H_
8 #include "nacl_io/event_emitter_stream.h"
9 #include "nacl_io/fifo_packet.h"
11 #include "sdk_util/macros.h"
12 #include "sdk_util/scoped_ref.h"
16 class EventEmitterUDP;
17 typedef sdk_util::ScopedRef<EventEmitterUDP> ScopedEventEmitterUDP;
19 class EventEmitterUDP : public EventEmitterStream {
21 EventEmitterUDP(size_t rsize, size_t wsize);
23 // Takes or gives away ownership of the packet.
24 Packet* ReadRXPacket_Locked();
25 void WriteRXPacket_Locked(Packet* packet);
27 Packet* ReadTXPacket_Locked();
28 void WriteTXPacket_Locked(Packet* packet);
31 virtual FIFOPacket* in_fifo() { return &in_fifo_; }
32 virtual FIFOPacket* out_fifo() { return &out_fifo_; }
37 DISALLOW_COPY_AND_ASSIGN(EventEmitterUDP);
40 } // namespace nacl_io
42 #endif // LIBRARIES_NACL_IO_EVENT_EMITTER_UDP_H_