blob: fdb5dc6d2345c05f2fbd7d556d34ca97d6de5075 [file] [log] [blame]
// Copyright 2022 The ChromiumOS Authors.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef RMAD_EXECUTOR_EXECUTOR_H_
#define RMAD_EXECUTOR_EXECUTOR_H_
#include <string>
#include <mojo/public/cpp/bindings/pending_receiver.h>
#include <mojo/public/cpp/bindings/receiver.h>
#include "rmad/executor/mojom/executor.mojom.h"
namespace rmad {
// Production implementation of the chromeos::rmad::mojom::Executor Mojo
// interface.
class Executor final : public chromeos::rmad::mojom::Executor {
public:
explicit Executor(
mojo::PendingReceiver<chromeos::rmad::mojom::Executor> receiver);
Executor(const Executor&) = delete;
Executor& operator=(const Executor&) = delete;
~Executor() override = default;
// chromeos::rmad::mojom::Executor overrides.
void MountAndWriteLog(uint8_t device_id,
const std::string& log_string,
MountAndWriteLogCallback callback) override;
void MountAndCopyFirmwareUpdater(
uint8_t device_id, MountAndCopyFirmwareUpdaterCallback callback) override;
void RebootEc(RebootEcCallback callback) override;
private:
// Provides a Mojo endpoint that rmad can call to access the executor's Mojo
// methods.
mojo::Receiver<chromeos::rmad::mojom::Executor> receiver_;
};
} // namespace rmad
#endif // RMAD_EXECUTOR_EXECUTOR_H_