X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=TextCollection.h;h=dad5c880ad4e7db431d0d6819cf49ecefe8c0105;hb=ee8a3e526fe7f39cdc075263824faf6c17389297;hp=f41084da633e1557c06c451e13c190f1f381c40a;hpb=6a9b42550a6eb6922d0a5f5d30f5dbc18a1e0b66;p=SXSI%2FTextCollection.git diff --git a/TextCollection.h b/TextCollection.h index f41084d..dad5c88 100644 --- a/TextCollection.h +++ b/TextCollection.h @@ -30,6 +30,7 @@ namespace SXSI { + /** * General interface for a text collection * @@ -44,12 +45,6 @@ namespace SXSI // Type for text position (FIXME ulong or long?) typedef ulong TextPosition; - /** - * Init an instance of a text collection object - * - * Returns a pointer to an object implementing this interface. - */ - static TextCollection * InitTextCollection(unsigned samplerate = TEXTCOLLECTION_DEFAULT_SAMPLERATE); /** * Load from a file * @@ -59,38 +54,23 @@ namespace SXSI * Throws an exception if std::fread() fails. * */ - virtual void Load(FILE *, unsigned samplerate = 0) = 0; + static TextCollection* Load(FILE *, unsigned samplerate = 0); + /** * Save data structure into a file * * Throws an exception if std::fwrite() fails. */ virtual void Save(FILE *) const = 0; + /** * Virtual destructor */ virtual ~TextCollection() { }; - /** - * Insert text - * - * Must be a zero-terminated string from alphabet [1,255]. - * Can not be called after makeStatic(). - * The i'th text insertion gets an identifier value i-1. - * In other words, document identifiers start from 0. - */ - virtual void InsertText(uchar const *) = 0; - /** - * Make static - * - * Convert to a static collection; reduces space and time complexities. - * New texts can not be inserted after this operation. - */ - virtual void MakeStatic() = 0; - + /** - tests if the string pointed to by DocId is empty - */ - + * Tests if the string pointed to by DocId is empty + */ virtual bool EmptyText(DocId) const = 0; /** @@ -198,7 +178,7 @@ namespace SXSI virtual full_result FullContains(uchar const *, DocId, DocId) const = 0; protected: - // Protected constructor; call the static function InitTextCollection(). + // Protected constructor; use TextCollectionBuilder TextCollection() { }; // No copy constructor or assignment