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 "quartz_database.h"
00028 #include "quartz_document.h"
00029 #include "quartz_values.h"
00030 #include "quartz_record.h"
00031
00035 QuartzDocument::QuartzDocument(Xapian::Internal::RefCntPtr<const Xapian::Database::Internal> database_,
00036 const QuartzValueTable *value_table_,
00037 const QuartzRecordTable *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, "QuartzDocument", "[database_], " << value_table_ << ", " << record_table_ << ", " << did_ << ", " << lazy);
00045
00046
00047 if (!lazy) (void)record_table->get_record(did);
00048 }
00049
00052 QuartzDocument::~QuartzDocument()
00053 {
00054 DEBUGCALL(DB, void, "~QuartzDocument", "");
00055 }
00056
00061 string
00062 QuartzDocument::do_get_value(Xapian::valueno valueid) const
00063 {
00064 DEBUGCALL(DB, string, "QuartzDocument::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 QuartzDocument::do_get_all_values() const
00074 {
00075 DEBUGCALL(DB, void, "QuartzDocument::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 QuartzDocument::do_get_data() const
00085 {
00086 DEBUGCALL(DB, string, "QuartzDocument::do_get_data", "");
00087 RETURN(record_table->get_record(did));
00088 }