#pragma once #include "input_session_types.h" #include "runtime_paths.h" #include "../english/english_dictionary.h" #include "../local_modes/local_query_result.h" #include "../local_modes/date_time_query.h" #include "../shuangpin/shuangpin_profile.h" #include #include namespace metasequoia { // Owns resource queries and candidate merging; has no keyboard or composition mutation API. class CandidateQueries { public: CandidateQueries(RuntimePaths paths, ShuangpinProfile profile) : paths_(std::move(paths)), shuangpin_profile_(std::move(profile)) { } local_modes::LocalQueryResult local(LocalInputMode mode, const std::string &preedit, SchemeType scheme, const std::function &clock, const std::vector &engine_candidates); std::vector mixed(std::vector candidates, const std::string &prefix, SchemeType scheme, EnglishInputOptions english_options, MixedExpressiveOptions expressive_options, bool dedicated_english, LocalInputMode local_mode); EnglishDictionary &english_dictionary(); private: RuntimePaths paths_; ShuangpinProfile shuangpin_profile_; std::unique_ptr english_dictionary_; }; } // namespace metasequoia