#ifndef _TCImplementation_H_
#define _TCImplementation_H_
+
+#include "incbwt/bits/deltavector.h"
+
#include "BitRank.h"
#include "TextCollection.h"
#include "BlockArray.h"
#undef bitset
#undef bitget
+
#include "TextStorage.h"
#include "ArrayDoc.h"
#include <set>
+#include <string>
namespace SXSI
{
*/
class TCImplementation : public SXSI::TextCollection {
public:
- TCImplementation(uchar *, ulong, unsigned, unsigned, ulong, ulong, char);
+ TCImplementation(uchar *, ulong, unsigned, unsigned, ulong, ulong,
+ CSA::DeltaVector &, const std::string &, char);
~TCImplementation();
bool EmptyText(DocId) const;
full_result FullKErrors(uchar const *, unsigned) const;
// Index from/to disk
- TCImplementation(FILE *, unsigned);
+ TCImplementation(FILE *, index_mode_t, unsigned);
void Save(FILE *) const;
private:
// Following methods are not part of the public API
uchar * BWT(uchar *);
void makewavelet(uchar *);
- void maketables(ulong, char);
+ void maketables(ulong, char, CSA::DeltaVector &, const std::string &);
DocId DocIdAtTextPos(BlockArray*, TextPosition) const;
ulong Search(uchar const *, TextPosition, TextPosition *, TextPosition *) const;
ulong Search(uchar const *, TextPosition, TextPosition *, TextPosition *, DocId, DocId) const;
// Rank among the end-markers in BWT
unsigned endmarkerRank = tmp_rank_c-1; //alphabetrank->rank(0, i) - 1;
DocId docId = Doc->access(endmarkerRank);
- result.push_back(make_pair(docId, dist));
+ result.push_back(std::make_pair(docId, dist));
}
else
{
TextPosition textPos = (*suffixes)[sampled->rank1(i)-1] + dist;
DocId docId = (*suffixDocId)[sampled->rank1(i)-1];
- result.push_back(make_pair(docId, textPos));
+ result.push_back(std::make_pair(docId, textPos));
}
}
}
unsigned endmarkerRank = tmp_rank_c-1; //alphabetrank->rank(0, i) - 1;
DocId docId = Doc->access(endmarkerRank);
if (docId >= begin && docId <= end)
- result.push_back(make_pair(docId, dist));
+ result.push_back(std::make_pair(docId, dist));
}
else
{
DocId docId = (*suffixDocId)[sampled->rank1(i)-1];
if (docId >= begin && docId <= end)
- result.push_back(make_pair(docId, textPos));
+ result.push_back(std::make_pair(docId, textPos));
}
}
}