3 #ifndef INCLUDE_NN_NLIB_SUCCINCT_WORDFILTER_H_
4 #define INCLUDE_NN_NLIB_SUCCINCT_WORDFILTER_H_
12 #if defined(_MSC_VER) && defined(nx_succinct_EXPORTS)
13 #undef NLIB_VIS_PUBLIC
14 #define NLIB_VIS_PUBLIC NLIB_WINEXPORT
23 typedef bool (*MatchCallback)(
const char* first,
const char* last, uint32_t nodeid,
33 #ifdef NLIB_CXX11_RVALUE_REFERENCES
39 void Match(const
char* doc, MatchCallback callback,
void* user_obj = NULL) NLIB_NOEXCEPT {
40 this->Match(doc,
nlib_strlen(doc), callback, user_obj);
42 NLIB_VIS_PUBLIC void Match(
const char* data,
size_t n, MatchCallback callback,
43 void* user_obj = NULL) NLIB_NOEXCEPT;
61 NLIB_VIS_PUBLIC bool AddWords(const
char* str,
size_t len) NLIB_NOEXCEPT;
62 bool AddWords(const
char* str) NLIB_NOEXCEPT {
63 return AddWords(str, strlen(str));
68 return AddExcludeWords(str, strlen(str));
80 #if defined(_MSC_VER) && defined(nx_succinct_EXPORTS)
81 #undef NLIB_VIS_PUBLIC
82 #define NLIB_VIS_PUBLIC NLIB_WINIMPORT
85 #endif // INCLUDE_NN_NLIB_SUCCINCT_WORDFILTER_H_
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。
#define NLIB_DISALLOW_COPY_AND_ASSIGN(TypeName)
TypeName で指定されたクラスのコピーコンストラクタと代入演算子を禁止します。
void swap(WordFilter &rhs) noexcept
オブジェクトの内容をスワップします。
C文字列のベクタをreallocベースで実装しています。
UniquePtrはポインタの所有権を保持し、UniquePtrがスコープから出るときにデストラクタでポインタをDELで指...
std::unique_ptrに相当するクラスが定義されています。
文章内に事前に指定した語の集合が含まれていないかどうかチェックするためのクラスです。 ...
空の構造体で、関数の引数をムーブすべきことを示すために利用されます。
Aho Corasick法を用いた文字列検索を行うためのクラスが定義されています。
bool AddExcludeWords(const char *str) noexcept
例外語の集合が入った配列から文字列を追加します。文字列の区切りは改行(CRLFかLF)である必要があります。 ...
語と除外語に対応するWordFilterオブジェクトを作成するクラスです。
ストリーム(OutputStream)にバイナリを書き込むクラスです。
ストリーム(InputStream)からバイナリを読み込むクラスです。
WordFilterBuilder() noexcept
コンストラクタです。
~WordFilterBuilder() noexcept
デストラクタです。