| 
    xapian-core
    1.4.29
    
   | 
 
#include <chert_synonym.h>
 Inheritance diagram for ChertSynonymTable:
 Collaboration diagram for ChertSynonymTable:Public Member Functions | |
| ChertSynonymTable (const std::string &dbdir, bool readonly) | |
| Create a new ChertSynonymTable object.  More... | |
| void | merge_changes () | 
| void | discard_changes () | 
| void | add_synonym (const std::string &term, const std::string &synonym) | 
| Add a synonym for term.  More... | |
| void | remove_synonym (const std::string &term, const std::string &synonym) | 
| Remove a synonym for term.  More... | |
| void | clear_synonyms (const std::string &term) | 
| Remove all synonyms for term.  More... | |
| TermList * | open_termlist (const std::string &term) | 
| Open synonym termlist for a term.  More... | |
| bool | is_modified () const | 
| Override methods of ChertTable.  More... | |
| void | flush_db () | 
| Override methods of ChertTable.  More... | |
| void | cancel () | 
| Override methods of ChertTable.  More... | |
  Public Member Functions inherited from ChertLazyTable | |
| ChertLazyTable (const char *name_, const std::string &path, bool readonly, int z_strategy) | |
| Create a new lazy table.  More... | |
| void | create_and_open (unsigned int blocksize) | 
| Lazy version of ChertTable::create_and_open().  More... | |
  Public Member Functions inherited from ChertTable | |
| ChertTable (const char *tablename_, const std::string &path_, bool readonly_, int compress_strategy_=DONT_COMPRESS, bool lazy=false) | |
| Create a new Btree object.  More... | |
| ~ChertTable () | |
| Close the Btree.  More... | |
| void | close (bool permanent=false) | 
| Close the Btree.  More... | |
| bool | readahead_key (const string &key) const | 
| bool | exists () const | 
| Determine whether the btree exists on disk.  More... | |
| void | open () | 
| Open the btree at the latest revision.  More... | |
| bool | open (chert_revision_number_t revision_) | 
| Open the btree at a given revision.  More... | |
| bool | is_open () const | 
| Return true if this table is open.  More... | |
| void | flush_db () | 
| Flush any outstanding changes to the DB file of the table.  More... | |
| void | commit (chert_revision_number_t revision, int changes_fd=-1, const std::string *changes_tail=NULL) | 
| Commit any outstanding changes to the table.  More... | |
| void | write_changed_blocks (int changes_fd) | 
| Append the list of blocks changed to a changeset file.  More... | |
| void | cancel () | 
| Cancel any outstanding changes.  More... | |
| bool | get_exact_entry (const std::string &key, std::string &tag) const | 
| Read an entry from the table, if and only if it is exactly that being asked for.  More... | |
| bool | key_exists (const std::string &key) const | 
| Check if a key exists in the Btree.  More... | |
| bool | read_tag (Cursor *C_, std::string *tag, bool keep_compressed) const | 
| Read the tag value for the key pointed to by cursor C_.  More... | |
| void | add (const std::string &key, std::string tag, bool already_compressed=false) | 
| Add a key/tag pair to the table, replacing any existing pair with the same key.  More... | |
| bool | del (const std::string &key) | 
| Delete an entry from the table.  More... | |
| void | erase () | 
| Erase this table from disk.  More... | |
| void | set_block_size (unsigned int block_size_) | 
| Set the block size.  More... | |
| unsigned int | get_block_size () const | 
| Get the block size.  More... | |
| void | create_and_open (unsigned int blocksize) | 
| Create a new empty btree structure on disk and open it at the initial revision.  More... | |
| void | set_full_compaction (bool parity) | 
| chert_revision_number_t | get_latest_revision_number () const | 
| Get the latest revision number stored in this table.  More... | |
| chert_revision_number_t | get_open_revision_number () const | 
| Get the revision number at which this table is currently open.  More... | |
| chert_tablesize_t | get_entry_count () const | 
| Return a count of the number of entries in the table.  More... | |
| bool | empty () const | 
| Return true if there are no entries in the table.  More... | |
| ChertCursor * | cursor_get () const | 
| Get a cursor for reading from the table.  More... | |
| bool | is_modified () const | 
| Determine whether the object contains uncommitted modifications.  More... | |
| void | set_max_item_size (size_t block_capacity) | 
| Set the maximum item size given the block capacity.  More... | |
| string | get_path () const | 
Private Attributes | |
| std::string | last_term | 
| The last term which was updated.  More... | |
| std::set< std::string > | last_synonyms | 
| The synonyms for the last term which was updated.  More... | |
Additional Inherited Members | |
  Static Public Member Functions inherited from ChertTable | |
| static void | throw_database_closed () | 
| Throw an exception indicating that the database is closed.  More... | |
  Protected Member Functions inherited from ChertTable | |
| bool | do_open_to_read (bool revision_supplied, chert_revision_number_t revision_) | 
| Perform the opening operation to read.  More... | |
| bool | do_open_to_write (bool revision_supplied, chert_revision_number_t revision_, bool create_db=false) | 
| Perform the opening operation to write.  More... | |
| bool | basic_open (bool revision_supplied, chert_revision_number_t revision) | 
| bool | find (Cursor *) const | 
| find(C_) searches for the key of B->kt in the B-tree.  More... | |
| int | delete_kt () | 
| void | read_block (uint4 n, uint8_t *p) const | 
| read_block(n, p) reads block n of the DB file to address p.  More... | |
| void | write_block (uint4 n, const uint8_t *p) const | 
| write_block(n, p) writes block n in the DB file from address p.  More... | |
| void | set_overwritten () const | 
| void | block_to_cursor (Cursor *C_, int j, uint4 n) const | 
| void | alter () | 
| Btree::alter(); is called when the B-tree is to be altered.  More... | |
| void | compact (uint8_t *p) | 
| compact(p) compact the block at p by shuffling all the items up to the end.  More... | |
| void | enter_key (int j, Key prevkey, Key newkey) | 
| enter_key(j, prevkey, newkey) is called after a block split.  More... | |
| int | mid_point (uint8_t *p) const | 
| mid_point(p) finds the directory entry in c that determines the approximate mid point of the data in the block at p.  More... | |
| void | add_item_to_block (uint8_t *p, Item_wr kt, int c) | 
| add_item_to_block(p, kt_, c) adds item kt_ to the block at p.  More... | |
| void | add_item (Item_wr kt, int j) | 
| ChertTable::add_item(kt_, j) adds item kt_ to the block at cursor level C[j].  More... | |
| void | delete_item (int j, bool repeatedly) | 
| ChertTable::delete_item(j, repeatedly) is (almost) the converse of add_item.  More... | |
| int | add_kt (bool found) | 
| add_kt(found) adds the item (key-tag pair) at B->kt into the B-tree, using cursor C.  More... | |
| void | read_root () | 
| void | split_root (uint4 split_n) | 
| Btree needs to gain a new level to insert more items: so split root block and construct a new one.  More... | |
| void | form_key (const std::string &key) const | 
| char | other_base_letter () const | 
| void | lazy_alloc_deflate_zstream () const | 
| Allocate the zstream for deflating, if not already allocated.  More... | |
| void | lazy_alloc_inflate_zstream () const | 
| Allocate the zstream for inflating, if not already allocated.  More... | |
| bool | prev (Cursor *C_, int j) const | 
| bool | next (Cursor *C_, int j) const | 
| bool | prev_default (Cursor *C_, int j) const | 
| bool | next_default (Cursor *C_, int j) const | 
| bool | prev_for_sequential (Cursor *C_, int dummy) const | 
| bool | next_for_sequential (Cursor *C_, int dummy) const | 
  Static Protected Member Functions inherited from ChertTable | |
| static int | find_in_block (const uint8_t *p, Key key, bool leaf, int c) | 
| find_in_block(p, key, leaf, c) searches for the key in the block at p.  More... | |
| static uint4 | block_given_by (const uint8_t *p, int c) | 
| block_given_by(p, c) finds the item at block address p, directory offset c, and returns its tag value as an integer.  More... | |
  Protected Attributes inherited from ChertTable | |
| const char * | tablename | 
| The name of the table (used when writing changesets).  More... | |
| chert_revision_number_t | revision_number | 
| revision number of the opened B-tree.  More... | |
| chert_tablesize_t | item_count | 
| keeps a count of the number of items in the B-tree.  More... | |
| unsigned int | block_size | 
| block size of the B tree in bytes  More... | |
| chert_revision_number_t | latest_revision_number | 
| Revision number of the other base, or zero if there is only one base file.  More... | |
| bool | both_bases | 
| set to true if baseA and baseB both exist as valid bases.  More... | |
| char | base_letter | 
| the value 'A' or 'B' of the current base  More... | |
| bool | faked_root_block | 
| true if the root block is faked (not written to disk).  More... | |
| bool | sequential | 
| true iff the data has been written in a single write in sequential order.  More... | |
| int | handle | 
| File descriptor of the table.  More... | |
| int | level | 
| number of levels, counting from 0  More... | |
| uint4 | root | 
| the root block of the B-tree  More... | |
| Item_wr | kt | 
| buffer of size block_size for making up key-tag items  More... | |
| uint8_t * | buffer | 
| buffer of size block_size for reforming blocks  More... | |
| ChertTable_base | base | 
| For writing back as file baseA or baseB.  More... | |
| std::string | name | 
| The path name of the B tree.  More... | |
| int | seq_count | 
| count of the number of successive instances of purely sequential addition, starting at SEQ_START_POINT (neg) and going up to zero.  More... | |
| uint4 | changed_n | 
| the last block to be changed by an addition  More... | |
| int | changed_c | 
| directory offset corresponding to last block to be changed by an addition  More... | |
| size_t | max_item_size | 
| maximum size of an item (key-tag pair)  More... | |
| bool | Btree_modified | 
| Set to true the first time the B-tree is modified.  More... | |
| bool | full_compaction | 
| set to true when full compaction is to be achieved  More... | |
| bool | writable | 
| Set to true when the database is opened to write.  More... | |
| bool | cursor_created_since_last_modification | 
| Flag for tracking when cursors need to rebuild.  More... | |
| unsigned long | cursor_version | 
| Version count for tracking when cursors need to rebuild.  More... | |
| Cursor | C [BTREE_CURSOR_LEVELS] | 
| uint8_t * | split_p | 
| Buffer used when splitting a block.  More... | |
| int | compress_strategy | 
| DONT_COMPRESS or Z_DEFAULT_STRATEGY, Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE.  More... | |
| z_stream * | deflate_zstream | 
| Zlib state object for deflating.  More... | |
| z_stream * | inflate_zstream | 
| Zlib state object for inflating.  More... | |
| bool | lazy | 
| If true, don't create the table until it's needed.  More... | |
| uint4 | last_readahead | 
| Last block readahead_key() preread.  More... | |
Definition at line 34 of file chert_synonym.h.
      
  | 
  inline | 
Create a new ChertSynonymTable object.
This method does not create or open the table on disk - you must call the create() or open() methods respectively!
| dbdir | The directory the chert database is stored in. | 
| readonly | true if we're opening read-only, else false. | 
Definition at line 50 of file chert_synonym.h.
References merge_changes().
| void ChertSynonymTable::add_synonym | ( | const std::string & | term, | 
| const std::string & | synonym | ||
| ) | 
Add a synonym for term.
If the synonym has already been added, no action is taken.
Definition at line 66 of file chert_synonym.cc.
References MAGIC_XOR_VALUE.
Referenced by ChertWritableDatabase::add_synonym(), and discard_changes().
      
  | 
  inline | 
Override methods of ChertTable.
NB: these aren't virtual, but we always call them on the subclass in cases where it matters.
Definition at line 103 of file chert_synonym.h.
References ChertTable::cancel(), and discard_changes().
Referenced by ChertDatabase::cancel().
| void ChertSynonymTable::clear_synonyms | ( | const std::string & | term | ) | 
Remove all synonyms for term.
If term has no synonyms, no action is taken.
Definition at line 118 of file chert_synonym.cc.
Referenced by ChertWritableDatabase::clear_synonyms(), and discard_changes().
      
  | 
  inline | 
Definition at line 58 of file chert_synonym.h.
References add_synonym(), clear_synonyms(), open_termlist(), and remove_synonym().
Referenced by cancel().
      
  | 
  inline | 
Override methods of ChertTable.
NB: these aren't virtual, but we always call them on the subclass in cases where it matters.
Definition at line 98 of file chert_synonym.h.
References ChertTable::flush_db(), and merge_changes().
Referenced by ChertDatabase::set_revision_number().
      
  | 
  inline | 
Override methods of ChertTable.
NB: these aren't virtual, but we always call them on the subclass in cases where it matters.
Definition at line 94 of file chert_synonym.h.
References ChertTable::is_modified().
Referenced by ChertDatabase::apply(), and ChertWritableDatabase::has_uncommitted_changes().
| void ChertSynonymTable::merge_changes | ( | ) | 
Definition at line 43 of file chert_synonym.cc.
References MAGIC_XOR_VALUE.
Referenced by ChertSynonymTable(), flush_db(), and ChertWritableDatabase::open_synonym_keylist().
| TermList * ChertSynonymTable::open_termlist | ( | const std::string & | term | ) | 
Open synonym termlist for a term.
If term has no synonyms, NULL is returned.
Definition at line 134 of file chert_synonym.cc.
References MAGIC_XOR_VALUE.
Referenced by discard_changes(), and ChertDatabase::open_synonym_termlist().
| void ChertSynonymTable::remove_synonym | ( | const std::string & | term, | 
| const std::string & | synonym | ||
| ) | 
Remove a synonym for term.
If the synonym doesn't exist, no action is taken.
Definition at line 92 of file chert_synonym.cc.
References MAGIC_XOR_VALUE.
Referenced by discard_changes(), and ChertWritableDatabase::remove_synonym().
      
  | 
  mutableprivate | 
The synonyms for the last term which was updated.
Definition at line 39 of file chert_synonym.h.
      
  | 
  mutableprivate | 
The last term which was updated.
Definition at line 36 of file chert_synonym.h.