diff options
Diffstat (limited to 'tools/dataProvider.h')
-rw-r--r-- | tools/dataProvider.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/tools/dataProvider.h b/tools/dataProvider.h index 5a2f3e9..a8a5448 100644 --- a/tools/dataProvider.h +++ b/tools/dataProvider.h @@ -35,6 +35,14 @@ public: delete data[i]; data.clear(); } + static DataEntry* copyEntry(DataEntry* d) + { + DataEntry* dat = new DataEntry; + dat->rank = d->rank; + dat->qid = d->qid; + dat->feature = d->feature; + return dat; + } inline std::vector<DataEntry*>& getData(){ return data; } @@ -57,8 +65,12 @@ public: while (!EOFile()) { getDataSet(buf); - out.getData().insert(out.getData().end(),buf.getData().begin(),buf.getData().end()); + // won't work as data are discarded with every call to getDataSet + // out.getData().insert(out.getData().end(),buf.getData().begin(),buf.getData().end()); + for (int i=0;i<buf.getSize();++i) + out.addEntry(out.copyEntry(buf.getData()[i])); } + out.setfSize(buf.getfSize()); } virtual int getDataSet(DataList &out) = 0; virtual int open()=0; |