25#include "SerializableDict.hpp"
38 virtual ~MarisaDict()
override;
43 size_t len)
const override;
46 size_t len)
const override;
49 const char* word,
size_t len)
const override;
51 virtual LexiconPtr
GetLexicon()
const override;
56 size_t len)
const override;
58 virtual void SerializeToFile(FILE* fp)
const override;
63 static MarisaDictPtr NewFromDict(
const Dict& thatDict);
65 static MarisaDictPtr NewFromFile(FILE* fp);
67 static MarisaDictPtr NewFromBuffer(
const char* data,
size_t size);
70 bool IsLexiconReconstructed()
const {
71 return lexiconReconstructed.load(std::memory_order_acquire);
77 void LoadFromMappedBuffer();
78 void ReconstructLexicon()
const;
80 mutable size_t maxLength;
81 mutable LexiconPtr lexicon;
82 mutable std::mutex lexiconMutex;
83 mutable std::atomic<bool> lexiconReconstructed;
84 LexiconPtr valuesLexicon;
87 std::unique_ptr<MarisaInternal> internal;
Abstract class of dictionary.
Definition Dict.hpp:63
virtual Optional< const DictEntry * > MatchPrefix(const char *word, size_t len) const override
Matches the longest matched prefix of a word.
Definition MarisaDict.cpp:70
virtual Optional< const DictEntry * > Match(const char *word, size_t len) const override
Matches a word exactly and returns the DictEntry or Optional::Null().
Definition MarisaDict.cpp:54
virtual LexiconPtr GetLexicon() const override
Returns all entries in the dictionary.
Definition MarisaDict.cpp:101
virtual std::vector< const DictEntry * > MatchAllPrefixes(const char *word, size_t len) const override
Returns all matched prefixes of a word, sorted by the length (desc).
Definition MarisaDict.cpp:87
virtual size_t KeyMaxLength() const override
Returns the length of the longest key in the dictionary.
Definition MarisaDict.cpp:49
virtual bool SupportsFastPrefixMatch() const override
Returns true if this dict can handle prefix queries directly without PrefixMatch building a lookup ta...
Definition MarisaDict.hpp:53
A class that wraps type T into a nullable type.
Definition Optional.hpp:26
Serializable dictionary interface.
Definition SerializableDict.hpp:32
Result of a PrefixMatch fast-path lookup.
Definition Dict.hpp:52