| // Copyright 2016 The Chromium 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 COMPONENTS_ASSIST_RANKER_ASSIST_RANKER_SERVICE_IMPL_H_ |
| #define COMPONENTS_ASSIST_RANKER_ASSIST_RANKER_SERVICE_IMPL_H_ |
| |
| #include <memory> |
| #include <string> |
| #include <unordered_map> |
| |
| #include "base/files/file_path.h" |
| #include "base/memory/ref_counted.h" |
| #include "base/sequence_checker.h" |
| #include "components/assist_ranker/assist_ranker_service.h" |
| #include "components/assist_ranker/predictor_config.h" |
| |
| namespace network { |
| class SharedURLLoaderFactory; |
| } |
| |
| namespace assist_ranker { |
| |
| class BasePredictor; |
| class BinaryClassifierPredictor; |
| |
| class AssistRankerServiceImpl : public AssistRankerService { |
| public: |
| AssistRankerServiceImpl( |
| base::FilePath base_path, |
| scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory); |
| ~AssistRankerServiceImpl() override; |
| |
| // AssistRankerService... |
| base::WeakPtr<BinaryClassifierPredictor> FetchBinaryClassifierPredictor( |
| const PredictorConfig& config) override; |
| |
| private: |
| // Returns the full path to the model cache. |
| base::FilePath GetModelPath(const std::string& model_filename); |
| |
| // URL loader factory used for RankerURLFetcher. |
| scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_; |
| |
| // Base path where models are stored. |
| const base::FilePath base_path_; |
| |
| std::unordered_map<std::string, std::unique_ptr<BasePredictor>> |
| predictor_map_; |
| |
| SEQUENCE_CHECKER(sequence_checker_); |
| |
| DISALLOW_COPY_AND_ASSIGN(AssistRankerServiceImpl); |
| }; |
| |
| } // namespace assist_ranker |
| |
| #endif // COMPONENTS_ASSIST_RANKER_ASSIST_RANKER_SERVICE_IMPL_H_ |