#include <config.h>
#include <xapian/document.h>
#include <xapian/error.h>
#include <xapian/positioniterator.h>
#include <xapian/termiterator.h>
#include <xapian/valueiterator.h>
#include "omassert.h"
#include "omenquireinternal.h"
#include "serialise.h"
#include "serialise-double.h"
#include "utils.h"
#include "weightinternal.h"
#include <string>
#include <cstring>
#include <xapian/errordispatch.h>

Go to the source code of this file.
Functions | |
| size_t | decode_length (const char **p, const char *end, bool check_remaining) |
| Decode a length encoded by encode_length. | |
| string | serialise_error (const Xapian::Error &e) |
| Serialise a Xapian::Error object to a string. | |
| void | unserialise_error (const string &serialised_error, const string &prefix, const string &new_context) |
| string | serialise_stats (const Xapian::Weight::Internal &stats) |
| Serialise a stats object. | |
| Xapian::Weight::Internal | unserialise_stats (const string &s) |
| Unserialise a serialised stats object. | |
| string | serialise_mset (const Xapian::MSet &mset) |
| Serialise a Xapian::MSet object. | |
| Xapian::MSet | unserialise_mset (const char *p, const char *p_end) |
| Unserialise a serialised Xapian::MSet object. | |
| string | serialise_rset (const Xapian::RSet &rset) |
| Serialise a Xapian::RSet object. | |
| Xapian::RSet | unserialise_rset (const string &s) |
| Unserialise a serialised Xapian::RSet object. | |
| string | serialise_document (const Xapian::Document &doc) |
| Serialise a Xapian::Document object. | |
| Xapian::Document | unserialise_document (const string &s) |
| Unserialise a serialised Xapian::Document object. | |
Definition in file serialise.cc.
| size_t decode_length | ( | const char ** | p, | |
| const char * | end, | |||
| bool | check_remaining | |||
| ) |
Decode a length encoded by encode_length.
| p | Pointer to a pointer to the string, which will be advanced past the encoded length. | |
| end | Pointer to the end of the string. | |
| check_remaining | Check the result against the amount of data remaining after the length has been decoded. |
Definition at line 42 of file serialise.cc.
Referenced by RemoteDatabase::add_document(), Xapian::DatabaseReplica::Internal::apply_db_copy(), RemoteDatabase::apply_stats_update(), RemoteDatabase::get_collection_freq(), RemoteDatabase::get_doclength(), RemoteDatabase::get_mset(), RemoteDatabase::get_termfreq(), Xapian::ValueCountMatchSpy::merge_results(), RemoteServer::msg_addspelling(), RemoteServer::msg_deletedocument(), RemoteServer::msg_doclength(), RemoteServer::msg_document(), RemoteServer::msg_positionlist(), RemoteServer::msg_query(), RemoteServer::msg_removespelling(), RemoteServer::msg_replacedocument(), RemoteServer::msg_replacedocumentterm(), RemoteServer::msg_setmetadata(), RemoteServer::msg_termlist(), RemoteServer::msg_valuestats(), NetworkPostList::next(), RemoteDatabase::open_allterms(), RemoteDatabase::open_document(), RemoteDatabase::open_position_list(), RemoteDatabase::open_term_list(), RemoteDatabase::read_post_list(), RemoteDatabase::read_value_stats(), QUnserial::readcompound(), QUnserial::readexternal(), QUnserial::readquery(), RemoteDatabase::replace_document(), test_serialiselength1(), test_serialiselength2(), Xapian::ValueMapPostingSource::unserialise(), Xapian::ValueWeightPostingSource::unserialise(), Xapian::ValueCountMatchSpy::unserialise(), Xapian::DecreasingValueWeightPostingSource::unserialise(), unserialise_document(), unserialise_error(), unserialise_mset(), unserialise_rset(), unserialise_stats(), and Xapian::DatabaseMaster::write_changesets_to_fd().
| string serialise_document | ( | const Xapian::Document & | doc | ) |
Serialise a Xapian::Document object.
| doc | The object to serialise. |
Definition at line 300 of file serialise.cc.
References Assert, encode_length(), Xapian::Document::get_data(), Xapian::ValueIterator::get_valueno(), Xapian::TermIterator::get_wdf(), Xapian::TermIterator::positionlist_begin(), Xapian::TermIterator::positionlist_count(), Xapian::TermIterator::positionlist_end(), Xapian::Document::termlist_begin(), Xapian::Document::termlist_count(), Xapian::Document::termlist_end(), Xapian::Document::values_begin(), Xapian::Document::values_count(), and Xapian::Document::values_end().
Referenced by RemoteDatabase::add_document(), RemoteDatabase::replace_document(), Xapian::Document::serialise(), and test_serialisedoc1().
| string serialise_error | ( | const Xapian::Error & | e | ) |
Serialise a Xapian::Error object to a string.
| e | The Xapian::Error object to serialise. |
Definition at line 69 of file serialise.cc.
References encode_length(), Xapian::Error::get_context(), Xapian::Error::get_error_string(), Xapian::Error::get_msg(), and Xapian::Error::get_type().
Referenced by RemoteServer::RemoteServer(), RemoteServer::run(), and test_serialiseerror1().
| string serialise_mset | ( | const Xapian::MSet & | mset | ) |
Serialise a Xapian::MSet object.
| mset | The object to serialise. |
Definition at line 178 of file serialise.cc.
References Xapian::MSet::begin(), encode_length(), Xapian::MSet::end(), Xapian::MSet::get_firstitem(), Xapian::MSet::get_matches_estimated(), Xapian::MSet::get_matches_lower_bound(), Xapian::MSet::get_matches_upper_bound(), Xapian::MSet::get_max_attained(), Xapian::MSet::get_max_possible(), Xapian::MSet::get_uncollapsed_matches_estimated(), Xapian::MSet::get_uncollapsed_matches_lower_bound(), Xapian::MSet::get_uncollapsed_matches_upper_bound(), Xapian::MSet::internal, serialise_double(), and Xapian::MSet::size().
Referenced by RemoteServer::msg_query().
| string serialise_rset | ( | const Xapian::RSet & | omrset | ) |
Serialise a Xapian::RSet object.
| rset | The object to serialise. |
Definition at line 268 of file serialise.cc.
References encode_length(), and Xapian::RSet::internal.
Referenced by RemoteDatabase::set_query().
| string serialise_stats | ( | const Xapian::Weight::Internal & | stats | ) |
Serialise a stats object.
| stats | The stats object to serialise. |
Definition at line 126 of file serialise.cc.
References Xapian::Weight::Internal::collection_size, encode_length(), Xapian::Weight::Internal::rset_size, Xapian::Weight::Internal::termfreqs, and Xapian::Weight::Internal::total_length.
Referenced by RemoteServer::msg_query(), and RemoteDatabase::send_global_stats().
| Xapian::Document unserialise_document | ( | const std::string & | s | ) |
Unserialise a serialised Xapian::Document object.
| s | The serialised object as a string. |
Definition at line 344 of file serialise.cc.
References Xapian::Document::add_posting(), Xapian::Document::add_term(), Xapian::Document::add_value(), decode_length(), and Xapian::Document::set_data().
Referenced by RemoteServer::msg_adddocument(), RemoteServer::msg_replacedocument(), RemoteServer::msg_replacedocumentterm(), test_serialisedoc1(), and Xapian::Document::unserialise().
| void unserialise_error | ( | const string & | serialised_error, | |
| const string & | prefix, | |||
| const string & | new_context | |||
| ) |
Definition at line 85 of file serialise.cc.
References decode_length().
Referenced by RemoteDatabase::get_message(), and test_serialiseerror1().
| Xapian::MSet unserialise_mset | ( | const char * | p, | |
| const char * | p_end | |||
| ) |
Unserialise a serialised Xapian::MSet object.
| p | Pointer to the start of the string to unserialise. | |
| p_end | Pointer to the end of the string to unserialise. |
Definition at line 218 of file serialise.cc.
References decode_length(), Xapian::MSet::Internal::TermFreqAndWeight::termfreq, Xapian::MSet::Internal::TermFreqAndWeight::termweight, and unserialise_double().
Referenced by RemoteDatabase::get_mset().
| Xapian::RSet unserialise_rset | ( | const std::string & | s | ) |
Unserialise a serialised Xapian::RSet object.
| s | The serialised object as a string. |
Definition at line 283 of file serialise.cc.
References Xapian::RSet::add_document(), decode_length(), and Xapian::RSet::size().
Referenced by RemoteServer::msg_query().
| Xapian::Weight::Internal unserialise_stats | ( | const std::string & | s | ) |
Unserialise a serialised stats object.
| s | The string to unserialise. |
Definition at line 148 of file serialise.cc.
References Xapian::Weight::Internal::collection_size, decode_length(), Xapian::Weight::Internal::rset_size, stat(), Xapian::Weight::Internal::termfreqs, and Xapian::Weight::Internal::total_length.
Referenced by RemoteDatabase::get_remote_stats(), and RemoteServer::msg_query().