| Index: native_client_sdk/src/libraries/nacl_io/socket/fifo_packet.cc
|
| diff --git a/native_client_sdk/src/libraries/nacl_io/socket/fifo_packet.cc b/native_client_sdk/src/libraries/nacl_io/socket/fifo_packet.cc
|
| index 3e5c330b52f35babbe5ffd7a5ccf38da6e06b953..cf4a6516764cd43e00aa2651c0c0846b6aaaeb04 100644
|
| --- a/native_client_sdk/src/libraries/nacl_io/socket/fifo_packet.cc
|
| +++ b/native_client_sdk/src/libraries/nacl_io/socket/fifo_packet.cc
|
| @@ -68,4 +68,28 @@ void FIFOPacket::WritePacket(Packet* packet) {
|
| packets_.push_front(packet);
|
| }
|
|
|
| +size_t FIFOPacket::Read(void* buf, size_t len) {
|
| + Packet* packet = ReadPacket();
|
| + if (!packet)
|
| + return 0;
|
| +
|
| + size_t bytes = packet->len();
|
| + if (bytes > len)
|
| + bytes = len;
|
| + memcpy(buf, packet->buffer(), bytes);
|
| +
|
| + delete packet;
|
| + return bytes;
|
| +}
|
| +
|
| +size_t FIFOPacket::Write(const void* buf, size_t len) {
|
| + if (len > WriteAvailable())
|
| + return 0;
|
| +
|
| + Packet* packet = new Packet(NULL);
|
| + packet->Copy(buf, len, 0);
|
| + WritePacket(packet);
|
| + return len;
|
| +}
|
| +
|
| } // namespace nacl_io
|
|
|