blob: c8bb750ab8a8b4a31c90208a3519906d69d937c2 [file] [edit]
// Copyright 2024 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef MODEMFWD_DAEMON_DELEGATE_H_
#define MODEMFWD_DAEMON_DELEGATE_H_
#include <string>
#include <base/functional/callback.h>
#include <brillo/errors/error.h>
namespace modemfwd {
class Modem;
class Task;
class Delegate {
public:
virtual ~Delegate() = default;
virtual void TaskUpdated(Task* task) = 0;
virtual void FinishTask(Task* task, brillo::ErrorPtr error) = 0;
virtual void ForceFlashForTesting(
const std::string& device_id,
const std::string& carrier_uuid,
const std::string& variant,
bool use_modems_fw_info,
base::OnceCallback<void(const brillo::ErrorPtr&)> callback) = 0;
virtual bool ResetModem(const std::string& device_id) = 0;
virtual void NotifyFlashStarting(const std::string& equipment_id) = 0;
virtual void RegisterOnStartFlashingCallback(const std::string& equipment_id,
base::OnceClosure callback) = 0;
virtual void RegisterOnModemReappearanceCallback(
const std::string& equipment_id, base::OnceClosure callback) = 0;
virtual void RegisterOnModemStateChangedCallback(
const std::string& device_id, base::RepeatingClosure callback) = 0;
virtual void RegisterOnModemPowerStateChangedCallback(
const std::string& device_id, base::RepeatingClosure callback) = 0;
};
} // namespace modemfwd
#endif // MODEMFWD_DAEMON_DELEGATE_H_