blob: 280916878b7ff9e1d038fe7da9a8b7bd2cf516e2 [file] [log] [blame]
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_OPTIMIZATION_GUIDE_CORE_TEST_MODEL_HANDLER_H_
#define COMPONENTS_OPTIMIZATION_GUIDE_CORE_TEST_MODEL_HANDLER_H_
#include "components/optimization_guide/core/model_handler.h"
#include "components/optimization_guide/core/test_model_executor.h"
namespace optimization_guide {
class TestModelHandler
: public ModelHandler<std::vector<float>, const std::vector<float>&> {
public:
TestModelHandler(
OptimizationGuideModelProvider* model_provider,
scoped_refptr<base::SequencedTaskRunner> background_task_runner,
std::unique_ptr<TestModelExecutor> executor =
std::make_unique<TestModelExecutor>())
: ModelHandler<std::vector<float>, const std::vector<float>&>(
model_provider,
background_task_runner,
std::move(executor),
/*model_inference_timeout=*/absl::nullopt,
proto::OptimizationTarget::OPTIMIZATION_TARGET_PAINFUL_PAGE_LOAD,
/*model_metadata=*/absl::nullopt) {}
~TestModelHandler() override = default;
TestModelHandler(const TestModelHandler&) = delete;
TestModelHandler& operator=(const TestModelHandler&) = delete;
// There is a method on the base class that exposes the returned supported
// features, if provided by the loaded model received from the server.
// absl::optional<T> ParsedSupportedFeaturesForLoadedModel();
};
} // namespace optimization_guide
#endif // COMPONENTS_OPTIMIZATION_GUIDE_CORE_TEST_MODEL_HANDLER_H_