16 #ifndef INCLUDE_NN_NLIB_SUCCINCT_WORDFILTER_H_ 17 #define INCLUDE_NN_NLIB_SUCCINCT_WORDFILTER_H_ 19 #include "nn/nlib/Swap.h" 22 #if defined(_MSC_VER) && defined(nx_succinct_EXPORTS) 23 #undef NLIB_VIS_PUBLIC 24 #define NLIB_VIS_PUBLIC NLIB_WINEXPORT 32 typedef bool (*MatchCallback)(
const char* first,
const char* last, uint32_t nodeid,
38 void Match(const
char* doc, MatchCallback callback,
void* user_obj)
NLIB_NOEXCEPT {
39 this->Match(doc,
nlib_strlen(doc), callback, user_obj);
42 this->Match(doc, callback,
nullptr);
44 void Match(
const char* data,
size_t n, MatchCallback callback,
void* user_obj)
NLIB_NOEXCEPT;
46 this->Match(data, n, callback,
nullptr);
53 class WordFilterPrivate;
54 WordFilterPrivate* prv_;
67 #ifdef __cpp_rvalue_references 74 bool AddExcludeWords(
const char* str,
size_t len)
NLIB_NOEXCEPT;
80 struct WordFilterBuilderPrivate;
81 WordFilterBuilderPrivate* prv_;
87 NLIB_DEFINE_STD_SWAP(::nlib_ns::succinct::WordFilter)
88 NLIB_DEFINE_STD_SWAP(::nlib_ns::succinct::WordFilterBuilder)
89 #if defined(_MSC_VER) && defined(nx_succinct_EXPORTS) 90 #undef NLIB_VIS_PUBLIC 91 #define NLIB_VIS_PUBLIC NLIB_WINIMPORT 94 #endif // INCLUDE_NN_NLIB_SUCCINCT_WORDFILTER_H_ #define NLIB_DISALLOW_COPY_AND_ASSIGN(TypeName)
TypeName で指定されたクラスのコピーコンストラクタと代入演算子を禁止します。
std::unique_ptr< WordFilter > Build2() noexcept
WordFilterオブジェクトを作成します。
文章内に事前に指定した語の集合が含まれていないかどうかチェックするためのクラスです。 ...
~WordFilter() noexcept
デストラクタです。
Aho Corasick法を用いた文字列検索を行うためのクラスが定義されています。
constexpr WordFilter() noexcept
デフォルトコンストラクタです。実行後Init()による初期化を必要とします。
void Match(const char *data, size_t n, MatchCallback callback) noexcept
上記関数の引数省略版で、nullptrを引数として渡します。
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
bool AddExcludeWords(const char *str) noexcept
例外語の集合が入った配列から文字列を追加します。文字列の区切りは改行(CRLFかLF)である必要があります。 ...
#define NLIB_CEXPR
利用可能であればconstexprが定義されます。そうでない場合は空文字列です。
void Match(const char *doc, MatchCallback callback) noexcept
上記関数の引数省略版で、nullptrを引数として渡します。
語と除外語に対応するWordFilterオブジェクトを作成するクラスです。
ストリーム(OutputStream)にバイナリを書き込むクラスです。
bool AddWords(const char *str) noexcept
検出対象の文字列の集合が入った配列から文字列を追加します。文字列の区切りは改行(CRLFかLF)である必要が...
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。
ストリーム(InputStream)からバイナリを読み込むクラスです。
constexpr WordFilterBuilder() noexcept
デフォルトコンストラクタです。実行後Init()による初期化を必要とします。
~WordFilterBuilder() noexcept
デストラクタです。