blob: b7e07c13482641ee016b18e7a61888ca5162d7ff [file] [log] [blame]
/*
* Copyright 2018 The Chromium OS 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 "hal_adapter/vendor_tag_ops_delegate.h"
#include <string>
#include <utility>
#include <vector>
#include "cros-camera/common.h"
namespace cros {
VendorTagOpsDelegate::VendorTagOpsDelegate(
scoped_refptr<base::SingleThreadTaskRunner> task_runner,
vendor_tag_ops_t* ops)
: internal::MojoBinding<VendorTagOps>(task_runner), vendor_tag_ops_(ops) {}
void VendorTagOpsDelegate::GetTagCount(const GetTagCountCallback& callback) {
VLOGF_ENTER();
DCHECK_NE(vendor_tag_ops_, nullptr);
DCHECK(task_runner_->BelongsToCurrentThread());
callback.Run(vendor_tag_ops_->get_tag_count(vendor_tag_ops_));
}
void VendorTagOpsDelegate::GetAllTags(const GetAllTagsCallback& callback) {
VLOGF_ENTER();
DCHECK_NE(vendor_tag_ops_, nullptr);
DCHECK(task_runner_->BelongsToCurrentThread());
std::vector<uint32_t> tags(vendor_tag_ops_->get_tag_count(vendor_tag_ops_));
vendor_tag_ops_->get_all_tags(vendor_tag_ops_, tags.data());
callback.Run(mojo::Array<uint32_t>(std::move(tags)));
}
void VendorTagOpsDelegate::GetSectionName(
uint32_t tag,
const GetSectionNameCallback& callback) {
VLOGF_ENTER();
DCHECK_NE(vendor_tag_ops_, nullptr);
DCHECK(task_runner_->BelongsToCurrentThread());
callback.Run(
mojo::String(vendor_tag_ops_->get_section_name(vendor_tag_ops_, tag)));
}
void VendorTagOpsDelegate::GetTagName(uint32_t tag,
const GetTagNameCallback& callback) {
VLOGF_ENTER();
DCHECK_NE(vendor_tag_ops_, nullptr);
DCHECK(task_runner_->BelongsToCurrentThread());
callback.Run(
mojo::String(vendor_tag_ops_->get_tag_name(vendor_tag_ops_, tag)));
}
void VendorTagOpsDelegate::GetTagType(uint32_t tag,
const GetTagTypeCallback& callback) {
VLOGF_ENTER();
DCHECK_NE(vendor_tag_ops_, nullptr);
DCHECK(task_runner_->BelongsToCurrentThread());
callback.Run(vendor_tag_ops_->get_tag_type(vendor_tag_ops_, tag));
}
} // namespace cros