1 /* -*- c-basic-offset: 2 -*- */ 2 /* 3 Copyright(C) 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-1335 USA 18 */ 19 20 #ifndef MRN_OPERATIONS_HPP_ 21 #define MRN_OPERATIONS_HPP_ 22 23 #include <groonga.h> 24 25 namespace mrn { 26 class Operations { 27 public: 28 Operations(grn_ctx *ctx); 29 ~Operations(); 30 31 bool is_locked(); 32 33 grn_id start(const char *type, 34 const char *table_name, size_t table_name_size); 35 void record_target(grn_id id, grn_id target_id); 36 void finish(grn_id id); 37 38 void enable_recording(); 39 void disable_recording(); 40 41 grn_hash *collect_processing_table_names(); 42 43 int repair(const char *table_name, size_t table_name_size); 44 int clear(const char *table_name, size_t table_name_size); 45 46 private: 47 grn_ctx *ctx_; 48 grn_obj text_buffer_; 49 grn_obj id_buffer_; 50 grn_obj *table_; 51 struct { 52 grn_obj *type_; 53 grn_obj *table_; 54 grn_obj *record_; 55 } columns_; 56 bool is_enabled_recording_; 57 }; 58 } 59 60 #endif /* MRN_OPERATIONS_HPP_ */ 61