| // 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_ADAPTOR_FACTORY_INTERFACE_H_ |
| #define HERMES_ADAPTOR_FACTORY_INTERFACE_H_ |
| |
| #include <memory> |
| |
| #include "hermes/adaptor_interfaces.h" |
| #include "hermes/dbus_bindings/org.chromium.Hermes.Manager.h" |
| |
| namespace hermes { |
| |
| class Euicc; |
| class Manager; |
| |
| // Interface for an object factory that creates an adaptor/proxy object. |
| class AdaptorFactoryInterface { |
| public: |
| virtual ~AdaptorFactoryInterface() = default; |
| virtual std::unique_ptr<EuiccAdaptorInterface> CreateEuiccAdaptor( |
| Euicc* euicc) = 0; |
| virtual std::unique_ptr<ManagerAdaptorInterface> CreateManagerAdaptor( |
| Manager* manager) = 0; |
| }; |
| |
| } // namespace hermes |
| |
| #endif // HERMES_ADAPTOR_FACTORY_INTERFACE_H_ |