// Copyright 2015 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 "parcel.h" #include "common.h" namespace minibind { Parcel::Parcel() : data_(), objects_() {} Parcel::~Parcel() {} void Parcel::WriteInterfaceToken(const std::string& str) { WriteUTF8(str); } void Parcel::WriteUTF8(const std::string& str) { data_.insert(data_.end(), str.begin(), str.end()); } void Parcel::WriteUInt32(uint32_t ui32) { data_.push_back((ui32 >> 24) & 0xff); data_.push_back((ui32 >> 16) & 0xff); data_.push_back((ui32 >> 8) & 0xff); data_.push_back((ui32 >> 0) & 0xff); } binder_uintptr_t Parcel::DataPointer() const { return reinterpret_cast(&data_[0]); } size_t Parcel::DataSize() const { return 0; } void Parcel::SetDataSize(size_t size) { // TODO: handle object lifetimes CHECK(size % 4 == 0); data_.resize(size); } void Parcel::Print() const { for (size_t i = 0; i < data_.size(); i += 4) { ALOG("%0x %0x %0x %0x", data_[i], data_[i+1], data_[i+2], data_[i+3]); } } } // namespace minibind