// 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 "command.h" #include "common.h" #include "parcel.h" namespace minibind { TransactionCommand::TransactionCommand(TransactionCommand::Type type) : command_(type == TWO_WAY ? BC_TRANSACTION : BC_REPLY) { } TransactionCommand::~TransactionCommand() {} void TransactionCommand::SetCode(uint32_t code) { transaction_.code = code; } void TransactionCommand::SetHandle(uint32_t handle) { transaction_.target.handle = handle; } void TransactionCommand::SetParcel(const Parcel& parcel) { transaction_.data_size = parcel.DataSize(); transaction_.data.ptr.buffer = parcel.DataPointer(); } size_t TransactionCommand::GetSize() const { return sizeof(command_) + sizeof(transaction_); } binder_uintptr_t TransactionCommand::GetData() const { return reinterpret_cast(&command_); } } // namespace minibind