blob: 165d040e49b485355fa2f5eceaf7d192e2208c4c [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_EUICC_MANAGER_INTERFACE_H_
#define HERMES_EUICC_MANAGER_INTERFACE_H_
#include "hermes/euicc_slot_info.h"
namespace hermes {
class EuiccManagerInterface {
public:
// Add/update an Euicc with the given EuiccInfo. Redundant updates will be
// ignored. Calling this on a |physical_slot| without an existing Euicc will
// lead to the creation of one.
virtual void OnEuiccUpdated(uint8_t physical_slot,
EuiccSlotInfo slot_info) = 0;
// Remove the Euicc at the corresponding physical slot. Calling this when no
// Euicc exists for |physical_slot| is a noop.
virtual void OnEuiccRemoved(uint8_t physical_slot) = 0;
virtual void OnLogicalSlotUpdated(uint8_t physical_slot,
base::Optional<uint8_t> logical_slot) = 0;
};
} // namespace hermes
#endif // HERMES_EUICC_MANAGER_INTERFACE_H_