00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include <config.h>
00026 #include "omdebug.h"
00027 #include "flint_database.h"
00028 #include "flint_document.h"
00029 #include "flint_values.h"
00030 #include "flint_record.h"
00031
00035 FlintDocument::FlintDocument(Xapian::Internal::RefCntPtr<const Xapian::Database::Internal> database_,
00036 const FlintValueTable *value_table_,
00037 const FlintRecordTable *record_table_,
00038 Xapian::docid did_, bool lazy)
00039 : Xapian::Document::Internal(database_.get(), did_),
00040 database(database_),
00041 value_table(value_table_),
00042 record_table(record_table_)
00043 {
00044 DEBUGCALL(DB, void, "FlintDocument", "[database_], " << value_table_ << ", " << record_table_ << ", " << did_ << ", " << lazy);
00045
00046
00047 if (!lazy) (void)record_table->get_record(did);
00048 }
00049
00052 FlintDocument::~FlintDocument()
00053 {
00054 DEBUGCALL(DB, void, "~FlintDocument", "");
00055 }
00056
00061 string
00062 FlintDocument::do_get_value(Xapian::valueno valueid) const
00063 {
00064 DEBUGCALL(DB, string, "FlintDocument::do_get_value", valueid);
00065 string retval;
00066 value_table->get_value(retval, did, valueid);
00067 RETURN(retval);
00068 }
00069
00072 map<Xapian::valueno, string>
00073 FlintDocument::do_get_all_values() const
00074 {
00075 DEBUGCALL(DB, void, "FlintDocument::do_get_all_values", "");
00076 map<Xapian::valueno, string> value_map;
00077 value_table->get_all_values(value_map, did);
00078 return value_map;
00079 }
00080
00083 string
00084 FlintDocument::do_get_data() const
00085 {
00086 DEBUGCALL(DB, string, "FlintDocument::do_get_data", "");
00087 RETURN(record_table->get_record(did));
00088 }