blob: ffae549280ccd6b4cb92602b69d1982533ee1fe6 [file] [log] [blame] [edit]
// 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 VTPM_COMMANDS_COMMAND_H_
#define VTPM_COMMANDS_COMMAND_H_
#include <string>
#include <base/functional/callback.h>
namespace vtpm {
// The type of the callback a `Command` instance runs with the the virtual tpm
// response as its argument.
using CommandResponseCallback = base::OnceCallback<void(const std::string&)>;
// A generic interface that executes a virtual TPM command.
class Command {
public:
virtual ~Command() = default;
// Executes a TPM `command`. Once done, calls `callback` w/ the TPM response.
virtual void Run(const std::string& command,
CommandResponseCallback callback) = 0;
};
} // namespace vtpm
#endif // VTPM_COMMANDS_COMMAND_H_