#include <chert_databasereplicator.h>


Public Member Functions | |
| ChertDatabaseReplicator (const std::string &db_dir_) | |
| bool | check_revision_at_least (const std::string &rev, const std::string &target) const |
| Virtual methods of DatabaseReplicator. | |
| std::string | apply_changeset_from_conn (RemoteConnection &conn, double end_time, bool valid) const |
| Virtual methods of DatabaseReplicator. | |
| std::string | get_uuid () const |
| Virtual methods of DatabaseReplicator. | |
Private Member Functions | |
| void | process_changeset_chunk_base (const std::string &tablename, std::string &buf, RemoteConnection &conn, double end_time, int changes_fd) const |
| Process a chunk which holds a base block. | |
| void | process_changeset_chunk_blocks (const std::string &tablename, std::string &buf, RemoteConnection &conn, double end_time, int changes_fd) const |
| Process a chunk which holds a list of changed blocks in the database. | |
Private Attributes | |
| std::string | db_dir |
| Path of database. | |
| unsigned int | max_changesets |
| The maximum number of changesets which should be kept in the database. | |
Definition at line 29 of file chert_databasereplicator.h.
| ChertDatabaseReplicator::ChertDatabaseReplicator | ( | const std::string & | db_dir_ | ) |
| string ChertDatabaseReplicator::apply_changeset_from_conn | ( | RemoteConnection & | conn, | |
| double | end_time, | |||
| bool | valid | |||
| ) | const [virtual] |
Virtual methods of DatabaseReplicator.
Implements Xapian::DatabaseReplicator.
Definition at line 225 of file chert_databasereplicator.cc.
References AssertEq, CHANGES_MAGIC_STRING, CHANGES_VERSION, CONST_STRLEN, create_changeset_file(), db_dir, RemoteConnection::get_message_chunk(), RemoteConnection::get_message_chunked(), ChertTable::get_open_revision_number(), FlintLock::lock(), LOGCALL, max_changesets, ChertTable::open(), pack_uint(), process_changeset_chunk_base(), process_changeset_chunk_blocks(), REASONABLE_CHANGESET_SIZE, REPL_REPLY_CHANGESET, RETURN, startswith(), Xapian::Internal::str(), FlintLock::SUCCESS, unpack_string(), unpack_uint(), and write_and_clear_changes().
| bool ChertDatabaseReplicator::check_revision_at_least | ( | const std::string & | rev, | |
| const std::string & | target | |||
| ) | const [virtual] |
Virtual methods of DatabaseReplicator.
Implements Xapian::DatabaseReplicator.
Definition at line 65 of file chert_databasereplicator.cc.
References LOGCALL, RETURN, and unpack_uint().
| string ChertDatabaseReplicator::get_uuid | ( | ) | const [virtual] |
Virtual methods of DatabaseReplicator.
Implements Xapian::DatabaseReplicator.
Definition at line 361 of file chert_databasereplicator.cc.
References db_dir, ChertVersion::get_uuid_string(), LOGCALL, ChertVersion::read_and_check(), and RETURN.
| void ChertDatabaseReplicator::process_changeset_chunk_base | ( | const std::string & | tablename, | |
| std::string & | buf, | |||
| RemoteConnection & | conn, | |||
| double | end_time, | |||
| int | changes_fd | |||
| ) | const [private] |
Process a chunk which holds a base block.
Definition at line 89 of file chert_databasereplicator.cc.
References db_dir, RemoteConnection::get_message_chunk(), io_sync(), io_write(), msvc_posix_open(), msvc_posix_rename(), O_BINARY, Xapian::DatabaseReplicator::open(), unlink(), unpack_uint(), and write_and_clear_changes().
Referenced by apply_changeset_from_conn().
| void ChertDatabaseReplicator::process_changeset_chunk_blocks | ( | const std::string & | tablename, | |
| std::string & | buf, | |||
| RemoteConnection & | conn, | |||
| double | end_time, | |||
| int | changes_fd | |||
| ) | const [private] |
Process a chunk which holds a list of changed blocks in the database.
Definition at line 164 of file chert_databasereplicator.cc.
References db_dir, RemoteConnection::get_message_chunk(), io_sync(), io_write(), msvc_posix_open(), O_BINARY, Xapian::DatabaseReplicator::open(), REASONABLE_CHANGESET_SIZE, Xapian::Internal::str(), unpack_uint(), and write_and_clear_changes().
Referenced by apply_changeset_from_conn().
std::string ChertDatabaseReplicator::db_dir [private] |
Path of database.
Definition at line 33 of file chert_databasereplicator.h.
Referenced by apply_changeset_from_conn(), get_uuid(), process_changeset_chunk_base(), and process_changeset_chunk_blocks().
unsigned int ChertDatabaseReplicator::max_changesets [private] |
The maximum number of changesets which should be kept in the database.
Definition at line 37 of file chert_databasereplicator.h.
Referenced by apply_changeset_from_conn(), and ChertDatabaseReplicator().