X-Git-Url: https://git.donarmstrong.com/?p=rsem.git;a=blobdiff_plain;f=ReadReader.h;h=141585aa5cfe78ff3cd1aca0899f227f092928af;hp=d244efa4236807871dcdda49c4b1f942d224f3ef;hb=da57529b92adbb7ae74a89861cb39fb35ac7c62d;hpb=fc69cf6af24c0550e55447fc82f01cb6f90c1c42 diff --git a/ReadReader.h b/ReadReader.h index d244efa..141585a 100644 --- a/ReadReader.h +++ b/ReadReader.h @@ -7,6 +7,7 @@ #include #include #include +#include #include "utils.h" #include "SingleRead.h" @@ -27,7 +28,7 @@ public: this->indices = indices; } - bool locate(long); // You should guarantee that indices exist and rid is valid, otherwise return false; If it fails, you should reset it manually! + bool locate(READ_INT_TYPE); // You should guarantee that indices exist and rid is valid, otherwise return false; If it fails, you should reset it manually! void reset(); bool next(ReadType& read, int flags = 7) { @@ -78,15 +79,15 @@ ReadReader::~ReadReader() { } template -bool ReadReader::locate(long rid) { - long crid = -1; +bool ReadReader::locate(READ_INT_TYPE rid) { + READ_INT_TYPE crid = -1; ReadType read; if (indices == NULL) return false; //We should make sure that crid returned by each indices is the same for (int i = 0; i < s; i++) { - long val = indices[i]->locate(rid, *arr[i]); + READ_INT_TYPE val = indices[i]->locate(rid, *arr[i]); if (i == 0) { crid = val; } else { assert(crid == val); } } assert(crid <= rid); @@ -94,7 +95,7 @@ bool ReadReader::locate(long rid) { if (crid < rid) return false; - std::streampos tmp[s]; + std::vector tmp(s); for (int i = 0; i < s; i++) { tmp[i] = arr[i]->tellg(); } if (!read.read(s, (std::istream**)arr, 0)) return false;