Branch data Line data Source code
1 : : /** @file brass_lazytable.h
2 : : * @brief Subclass of BrassTable for deriving lazy tables from.
3 : : */
4 : : /* Copyright (C) 2009 Olly Betts
5 : : *
6 : : * This program is free software; you can redistribute it and/or modify
7 : : * it under the terms of the GNU General Public License as published by
8 : : * the Free Software Foundation; either version 2 of the License, or
9 : : * (at your option) any later version.
10 : : *
11 : : * This program is distributed in the hope that it will be useful,
12 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 : : * GNU General Public License for more details.
15 : : *
16 : : * You should have received a copy of the GNU General Public License
17 : : * along with this program; if not, write to the Free Software
18 : : * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 : : */
20 : :
21 : : #ifndef XAPIAN_INCLUDED_BRASS_LAZYTABLE_H
22 : : #define XAPIAN_INCLUDED_BRASS_LAZYTABLE_H
23 : :
24 : : #include "brass_table.h"
25 : :
26 : 8832 : class BrassLazyTable : public BrassTable {
27 : : public:
28 : : /** Create a new lazy table.
29 : : *
30 : : * @param name_ The table's name.
31 : : * @param path The path for the table.
32 : : * @param readonly true if the table is read-only, else false.
33 : : * @param z_strategy zlib strategy.
34 : : */
35 : 8832 : BrassLazyTable(const char * name_, const std::string & path, bool readonly,
36 : : int z_strategy)
37 : 8832 : : BrassTable(name_, path, readonly, z_strategy, true) { }
38 : :
39 : : /** Lazy version of BrassTable::create_and_open().
40 : : *
41 : : * This method isn't virtual, but we never call it such that it needs to
42 : : * be.
43 : : */
44 : 924 : void create_and_open(unsigned int blocksize) {
45 : : // This table is created lazily, so erase it in case we're overwriting
46 : : // an existing database which has this table.
47 : 924 : BrassTable::erase();
48 : 924 : BrassTable::set_block_size(blocksize);
49 : 924 : }
50 : : };
51 : :
52 : : #endif // XAPIAN_INCLUDED_BRASS_LAZYTABLE_H
|