// 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 ML_GRAMMAR_CHECKER_IMPL_H_
#define ML_GRAMMAR_CHECKER_IMPL_H_

#include <base/callback_forward.h>
#include <base/macros.h>
#include <mojo/public/cpp/bindings/pending_receiver.h>
#include <mojo/public/cpp/bindings/receiver.h>

#include "chrome/knowledge/grammar/grammar_interface.pb.h"
#include "ml/grammar_library.h"
#include "ml/mojom/grammar_checker.mojom.h"

namespace ml {

class GrammarCheckerImpl
    : public chromeos::machine_learning::mojom::GrammarChecker {
 public:
  // Constructs a GrammarCheckerImpl; and set disconnect handler so that the
  // GrammarCheckerImpl will be deleted when the mojom connection is destroyed.
  // Returns whether the object is create successfully.
  static bool Create(
      mojo::PendingReceiver<chromeos::machine_learning::mojom::GrammarChecker>
          receiver);

  // Called when mojom connection is destroyed.
  ~GrammarCheckerImpl();

 private:
  // Creates a GrammarChecker and Binds to `receiver` inside so that Check can
  // be called on the other side for a particular grammar check query.
  GrammarCheckerImpl(
      mojo::PendingReceiver<chromeos::machine_learning::mojom::GrammarChecker>
          receiver);

  // mojom::GrammarChecker
  void Check(chromeos::machine_learning::mojom::GrammarCheckerQueryPtr query,
             CheckCallback callback) override;

  bool successfully_loaded_;

  // Pointer to the internal implementation of GrammarChecker inside the
  // GrammarLibrary.
  ::GrammarChecker checker_;
  const ml::GrammarLibrary* const library_;

  mojo::Receiver<chromeos::machine_learning::mojom::GrammarChecker> receiver_;

  DISALLOW_COPY_AND_ASSIGN(GrammarCheckerImpl);
};

}  // namespace ml

#endif  // ML_GRAMMAR_CHECKER_IMPL_H_
