| Index: native_client_sdk/src/libraries/nacl_io/packet.cc
|
| diff --git a/native_client_sdk/src/libraries/nacl_io/packet.cc b/native_client_sdk/src/libraries/nacl_io/packet.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..c75fb11e17a80ad3b9a6856f289554e61eedf9ad
|
| --- /dev/null
|
| +++ b/native_client_sdk/src/libraries/nacl_io/packet.cc
|
| @@ -0,0 +1,41 @@
|
| +// Copyright (c) 2013 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "nacl_io/packet.h"
|
| +
|
| +#include <string.h>
|
| +
|
| +#include "nacl_io/pepper_interface.h"
|
| +
|
| +namespace nacl_io {
|
| +
|
| +Packet::Packet(PepperInterface* ppapi)
|
| + : ppapi_(ppapi),
|
| + addr_(0),
|
| + buffer_(NULL),
|
| + len_(0) {}
|
| +
|
| +Packet:: ~Packet() {
|
| + if ((NULL != ppapi_) && addr_)
|
| + ppapi_->ReleaseResource(addr_);
|
| + delete[] buffer_;
|
| +}
|
| +
|
| +void Packet::Take(const void *buffer, size_t len, PP_Resource addr) {
|
| + addr_ = addr;
|
| + len_ = len;
|
| + buffer_ = static_cast<char*>(const_cast<void*>(buffer));
|
| +}
|
| +
|
| +void Packet::Copy(const void *buffer, size_t len, PP_Resource addr) {
|
| + addr_ = addr;
|
| + len_ = len;
|
| + buffer_ = new char[len];
|
| +
|
| + memcpy(buffer_, buffer, len);
|
| + if (addr && (NULL != ppapi_))
|
| + ppapi_->AddRefResource(addr);
|
| +}
|
| +
|
| +} // namespace nacl_io
|
|
|