blob: 4eba5b5b9611ced70b490dedb48e435af705658d [file] [log] [blame]
// Copyright 2021 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 LIBEC_GET_VERSION_COMMAND_H_
#define LIBEC_GET_VERSION_COMMAND_H_
#include <array>
#include <string>
#include <vector>
#include <brillo/brillo_export.h>
#include "libec/ec_command.h"
namespace ec {
class BRILLO_EXPORT GetVersionCommand
: public EcCommand<EmptyParam, struct ec_response_get_version> {
public:
GetVersionCommand() : EcCommand(EC_CMD_GET_VERSION) {}
~GetVersionCommand() override = default;
bool Run(int fd) override;
std::string RWVersion() const;
std::string ROVersion() const;
ec_image Image() const;
protected:
virtual bool EcCommandRun(int fd);
private:
std::string rw_version_;
std::string ro_version_;
ec_image image_ = EC_IMAGE_UNKNOWN;
};
static_assert(!std::is_copy_constructible<GetVersionCommand>::value,
"EcCommands are not copyable by default");
static_assert(!std::is_copy_assignable<GetVersionCommand>::value,
"EcCommands are not copy-assignable by default");
} // namespace ec
#endif // LIBEC_GET_VERSION_COMMAND_H_