Added deltavector for non-indexed texts
[SXSI/TextCollection.git] / TextCollection.h
index dad5c88..dbc7982 100644 (file)
@@ -25,9 +25,6 @@
 #include <vector>
 #include <utility> // Defines std::pair.
 
-// Default samplerate for suffix array samples
-#define TEXTCOLLECTION_DEFAULT_SAMPLERATE 64
-
 namespace SXSI
 {
 
@@ -78,8 +75,22 @@ namespace SXSI
          *
          * Returns the i'th text in the collection.
          * The numbering starts from 0.
+         *
+         * Call DeleteText() for each pointer returned by GetText()
+         * to avoid possible memory leaks.
          */
         virtual uchar* GetText(DocId) const = 0;
+        virtual void DeleteText(uchar *text) const = 0;
+
+        /**
+         * Returns a pointer to the beginning of texts i, i+1, ..., j.
+         * Texts are separated by a '\0' byte.
+         *
+         * Call DeleteText() for each pointer returned by GetText()
+         * to avoid possible memory leaks.
+         */
+        virtual uchar * GetText(DocId i, DocId j) const = 0;
+
         /**
          * Returns substring [i, j] of k'th text
          *
@@ -156,7 +167,9 @@ namespace SXSI
         virtual document_result Equal(uchar const *) const = 0;
         virtual document_result Contains(uchar const *) const = 0;
         virtual document_result LessThan(uchar const *) const = 0;
-
+        virtual document_result KMismaches(uchar const *, unsigned) const = 0;
+        virtual document_result KErrors(uchar const *, unsigned) const = 0;
+    
         /**
          * Document reporting queries for given DocId interval.
          */
@@ -177,6 +190,9 @@ namespace SXSI
         // Full reporting query for given DocId interval
         virtual full_result FullContains(uchar const *, DocId, DocId) const = 0;
 
+        virtual full_result FullKMismatches(uchar const *, unsigned) const = 0;
+        virtual full_result FullKErrors(uchar const *, unsigned) const = 0;
+
     protected:
         // Protected constructor; use TextCollectionBuilder
         TextCollection() { };