chromium/components/browsing_topics/annotator_noop.h

// Copyright 2023 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_BROWSING_TOPICS_ANNOTATOR_NOOP_H_
#define COMPONENTS_BROWSING_TOPICS_ANNOTATOR_NOOP_H_

#include "components/browsing_topics/annotator.h"

namespace browsing_topics {

// A no-op annotator when TFLite is not available by buildflag.
class AnnotatorNoOp : public Annotator {
 public:
  using BatchAnnotationCallback =
      base::OnceCallback<void(const std::vector<Annotation>&)>;

  AnnotatorNoOp();
  ~AnnotatorNoOp() override;

  // Annotator:
  void BatchAnnotate(BatchAnnotationCallback callback,
                     const std::vector<std::string>& inputs) override;
  void NotifyWhenModelAvailable(base::OnceClosure callback) override;
  std::optional<optimization_guide::ModelInfo> GetBrowsingTopicsModelInfo()
      const override;
};

}  // namespace browsing_topics

#endif  // COMPONENTS_BROWSING_TOPICS_ANNOTATOR_NOOP_H_