| /* Copyright 2019 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 HARDWARE_VERIFIER_PROBE_RESULT_GETTER_IMPL_H_ |
| #define HARDWARE_VERIFIER_PROBE_RESULT_GETTER_IMPL_H_ |
| |
| #include <memory> |
| |
| #include <base/macros.h> |
| |
| #include "hardware_verifier/probe_result_getter.h" |
| |
| namespace hardware_verifier { |
| |
| // A helper class to invoke |runtime_probe| service via D-Bus interface. |
| // |
| // All methods are mostly implemented by using the existing functions in |
| // brillo::dbus::* so we mock this helper class and only test other parts |
| // of |ProbeResultGetterImpl| in unittest. |
| class RuntimeProbeProxy { |
| public: |
| RuntimeProbeProxy() = default; |
| RuntimeProbeProxy(const RuntimeProbeProxy&) = delete; |
| RuntimeProbeProxy& operator=(const RuntimeProbeProxy&) = delete; |
| |
| virtual ~RuntimeProbeProxy() = default; |
| virtual bool ProbeCategories(const runtime_probe::ProbeRequest& req, |
| runtime_probe::ProbeResult* resp) const; |
| }; |
| |
| // The real implementation of |ProbeResultGetter|. |
| class ProbeResultGetterImpl : public ProbeResultGetter { |
| public: |
| ProbeResultGetterImpl(); |
| |
| base::Optional<runtime_probe::ProbeResult> GetFromRuntimeProbe() |
| const override; |
| base::Optional<runtime_probe::ProbeResult> GetFromFile( |
| const base::FilePath& file_path) const override; |
| |
| private: |
| friend class TestProbeResultGetterImpl; |
| |
| explicit ProbeResultGetterImpl( |
| std::unique_ptr<RuntimeProbeProxy> runtime_probe_proxy); |
| ProbeResultGetterImpl(const ProbeResultGetterImpl&) = delete; |
| ProbeResultGetterImpl& operator=(const ProbeResultGetterImpl&) = delete; |
| |
| std::unique_ptr<RuntimeProbeProxy> runtime_probe_proxy_; |
| }; |
| |
| } // namespace hardware_verifier |
| |
| #endif // HARDWARE_VERIFIER_PROBE_RESULT_GETTER_IMPL_H_ |