1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- // Copyright (c) 2012 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_SPELLCHECK_RENDERER_HUNSPELL_ENGINE_H_
- #define COMPONENTS_SPELLCHECK_RENDERER_HUNSPELL_ENGINE_H_
- #include <memory>
- #include <string>
- #include <vector>
- #include "base/strings/utf_string_conversions.h"
- #include "components/spellcheck/common/spellcheck_common.h"
- #include "components/spellcheck/renderer/spelling_engine.h"
- class Hunspell;
- namespace base {
- class MemoryMappedFile;
- }
- class HunspellEngine : public SpellingEngine {
- public:
- explicit HunspellEngine(
- service_manager::LocalInterfaceProvider* embedder_provider);
- ~HunspellEngine() override;
- void Init(base::File file) override;
- bool InitializeIfNeeded() override;
- bool IsEnabled() override;
- bool CheckSpelling(const std::u16string& word_to_check, int tag) override;
- void FillSuggestionList(
- const std::u16string& wrong_word,
- std::vector<std::u16string>* optional_suggestions) override;
- private:
- // Initializes the Hunspell dictionary, or does nothing if |hunspell_| is
- // non-null. This blocks.
- void InitializeHunspell();
- // We memory-map the BDict file.
- std::unique_ptr<base::MemoryMappedFile> bdict_file_;
- // The hunspell dictionary in use.
- std::unique_ptr<Hunspell> hunspell_;
- base::File file_;
- // This flag is true if hunspell is enabled.
- bool hunspell_enabled_;
- // This flag is true if we have been initialized.
- // The value indicates whether we should request a
- // dictionary from the browser when the render view asks us to check the
- // spelling of a word.
- bool initialized_;
- // This flag is true if we have requested dictionary.
- bool dictionary_requested_;
- service_manager::LocalInterfaceProvider* embedder_provider_;
- };
- #endif // COMPONENTS_SPELLCHECK_RENDERER_HUNSPELL_ENGINE_H_
|