1/* -*- c-basic-offset: 2 -*- */
2/*
3 Copyright(C) 2013-2015 Kouhei Sutou <kou@clear-code.com>
4
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with this library; if not, write to the Free Software
17 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18*/
19
20#ifndef MRN_FIELD_NORMALIZER_HPP_
21#define MRN_FIELD_NORMALIZER_HPP_
22
23#include <mrn_mysql.h>
24#include <mrn_mysql_compat.h>
25
26#include <groonga.h>
27
28namespace mrn {
29 class FieldNormalizer {
30 public:
31 FieldNormalizer(grn_ctx *ctx, THD *thread, Field *field);
32 ~FieldNormalizer();
33
34 bool should_normalize();
35 grn_obj *normalize(const char *string, unsigned int string_length);
36 grn_obj *find_grn_normalizer();
37
38 private:
39 grn_ctx *ctx_;
40 THD *thread_;
41 Field *field_;
42
43 bool is_text_type();
44 };
45}
46
47#endif // MRN_FIELD_NORMALIZER_HPP_
48