blob: 016d7901f71c9b975ede557557750eb7b54e0fb4 [file] [log] [blame]
// 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 TYPECD_CROS_EC_UTIL_H_
#define TYPECD_CROS_EC_UTIL_H_
#include <memory>
#include <base/memory/ref_counted.h>
#include <dbus/bus.h>
#include <debugd/dbus-proxies.h>
#include <gtest/gtest_prod.h>
#include "typecd/ec_util.h"
namespace typecd {
// ECUtil implementation which communicates with the Chrome EC via debugd.
class CrosECUtil : public ECUtil {
public:
explicit CrosECUtil(scoped_refptr<dbus::Bus> bus);
CrosECUtil(const CrosECUtil&) = delete;
CrosECUtil& operator=(const CrosECUtil&) = delete;
bool ModeEntrySupported() override;
bool EnterMode(int port, TypeCMode mode) override;
bool ExitMode(int port) override;
private:
FRIEND_TEST(CrosEcUtilTest, ModeEntrySupported);
std::unique_ptr<org::chromium::debugdProxyInterface> debugd_proxy_;
};
} // namespace typecd
#endif // TYPECD_CROS_EC_UTIL_H_