blob: b9e787c213839d41b4880d6fdfb865c4f8da619f [file] [log] [blame]
// Copyright 2020 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 "hermes/euicc_dbus_adaptor.h"
#include <memory>
#include <string>
#include <utility>
#include <base/strings/string_number_conversions.h>
#include <brillo/errors/error_codes.h>
#include <chromeos/dbus/service_constants.h>
#include "hermes/dbus_result.h"
#include "hermes/euicc.h"
namespace hermes {
namespace {
const char kBasePath[] = "/org/chromium/Hermes/euicc/";
} // namespace
// static
uint16_t EuiccDBusAdaptor::next_id_ = 0;
EuiccDBusAdaptor::EuiccDBusAdaptor(Euicc* euicc)
: EuiccAdaptorInterface(this),
euicc_(euicc),
object_path_(kBasePath + base::NumberToString(next_id_++)),
dbus_object_(nullptr, Context::Get()->bus(), object_path_) {
RegisterWithDBusObject(&dbus_object_);
dbus_object_.RegisterAndBlock();
}
void EuiccDBusAdaptor::InstallProfileFromActivationCode(
std::unique_ptr<DBusResponse<dbus::ObjectPath>> response,
const std::string& in_activation_code,
const std::string& in_confirmation_code) {
DbusResult<dbus::ObjectPath> dbus_result(std::move(response));
euicc_->InstallProfileFromActivationCode(
in_activation_code, in_confirmation_code, std::move(dbus_result));
}
void EuiccDBusAdaptor::InstallPendingProfile(
std::unique_ptr<DBusResponse<dbus::ObjectPath>> response,
const dbus::ObjectPath& in_pending_profile,
const std::string& in_confirmation_code) {
DbusResult<dbus::ObjectPath> dbus_result(std::move(response));
euicc_->InstallPendingProfile(in_pending_profile, in_confirmation_code,
std::move(dbus_result));
}
void EuiccDBusAdaptor::UninstallProfile(
std::unique_ptr<DBusResponse<>> response,
const dbus::ObjectPath& in_profile) {
DbusResult<> dbus_result(std::move(response));
euicc_->UninstallProfile(in_profile, std::move(dbus_result));
}
void EuiccDBusAdaptor::RequestPendingProfiles(
std::unique_ptr<DBusResponse<>> response, const std::string& in_root_smds) {
DbusResult<> dbus_result(std::move(response));
euicc_->RequestPendingProfiles(std::move(dbus_result), in_root_smds);
}
void EuiccDBusAdaptor::RequestInstalledProfiles(
std::unique_ptr<DBusResponse<>> response) {
DbusResult<> dbus_result(std::move(response));
euicc_->RequestInstalledProfiles(std::move(dbus_result));
}
void EuiccDBusAdaptor::SetTestMode(std::unique_ptr<DBusResponse<>> response,
bool in_is_test_mode) {
DbusResult<> dbus_result(std::move(response));
euicc_->SetTestModeHelper(in_is_test_mode, std::move(dbus_result));
}
void EuiccDBusAdaptor::UseTestCerts(bool in_use_test_certs) {
euicc_->UseTestCerts(in_use_test_certs);
}
void EuiccDBusAdaptor::ResetMemory(std::unique_ptr<DBusResponse<>> response,
int in_reset_options) {
DbusResult<> dbus_result(std::move(response));
euicc_->ResetMemoryHelper(std::move(dbus_result), in_reset_options);
}
} // namespace hermes