blob: 8affcb64cdae1cbc94e88b7e286985eecd2a0732 [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.
#ifndef HERMES_MODEM_CONTROL_INTERFACE_H_
#define HERMES_MODEM_CONTROL_INTERFACE_H_
#include <vector>
#include <google-lpa/lpa/data/proto/euicc_info_1.pb.h>
#include "hermes/euicc_event.h"
#include "hermes/hermes_common.h"
namespace hermes {
class ModemControlInterface {
public:
// Switch to the slot value before the last hermes operation
virtual void RestoreActiveSlot(ResultCallback cb) = 0;
virtual void ProcessEuiccEvent(EuiccEvent event, ResultCallback cb) = 0;
virtual void SetCardVersion(
const lpa::proto::EuiccSpecVersion& spec_version) = 0;
virtual void OpenConnection(
const std::vector<uint8_t>& aid,
base::OnceCallback<void(std::vector<uint8_t>)> cb) = 0;
virtual void TransmitApdu(
const std::vector<uint8_t>& apduCommand,
base::OnceCallback<void(std::vector<uint8_t>)> cb) = 0;
virtual ~ModemControlInterface() = default;
};
} // namespace hermes
#endif // HERMES_MODEM_CONTROL_INTERFACE_H_