1 /** @file inmemory_document.h 2 * @brief A document read from a InMemoryDatabase. 3 */ 4 /* Copyright (C) 2008,2009 Olly Betts 5 * 6 * This program is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU General Public License as 8 * published by the Free Software Foundation; either version 2 of the 9 * License, or (at your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 */ 20 21 #ifndef XAPIAN_INCLUDED_INMEMORY_DOCUMENT_H 22 #define XAPIAN_INCLUDED_INMEMORY_DOCUMENT_H 23 24 #include "database.h" 25 #include "document.h" 26 27 /// A document read from a InMemoryDatabase. 28 class InMemoryDocument : public Xapian::Document::Internal { 29 /// Don't allow assignment. 30 void operator=(const InMemoryDocument &); 31 32 /// Don't allow copying. 33 InMemoryDocument(const InMemoryDocument &); 34 35 /// InMemoryDatabase::open_document() needs to call our private constructor. 36 friend class InMemoryDatabase; 37 38 /// Private constructor - only called by InMemoryDatabase::open_document(). InMemoryDocument(const Xapian::Database::Internal * db,Xapian::docid did_)39 InMemoryDocument(const Xapian::Database::Internal *db, Xapian::docid did_) 40 : Xapian::Document::Internal(db, did_) { } 41 42 public: 43 /** Implementation of virtual methods @{ */ 44 string do_get_value(Xapian::valueno slot) const; 45 void do_get_all_values(map<Xapian::valueno, string> & values_) const; 46 string do_get_data() const; 47 /** @} */ 48 }; 49 50 #endif // XAPIAN_INCLUDED_INMEMORY_DOCUMENT_H 51