// File Data Provider // Any kind of dataprovider that reads from file #ifndef FDPROV_H #define FDPROV_H #include "dataProvider.h" #include "easylogging++.h" #include #include #include // Rank qid features // Deprecated due to algorithm update class FileDP:public DataProvider { private: std::string fname; std::ifstream fin; public: FileDP(std::string fn=""):fname(fn){}; virtual int getDataSet(DataList &out); virtual void getAllDataSet(RidList &out){ LOG(FATAL)<<"getAllDataSet for normal FileDP not implemented";}; virtual int open(){fin.open(fname); eof=false;return 0;}; virtual int close(){fin.close();return 0;}; }; // label features class RidFileDP:public DataProvider { private: std::string fname; std::ifstream fin; std::vector mask; DataList d; bool read; bool maskinit; int pos; int qid; public: RidFileDP(std::string fn=""):fname(fn),read(false),maskinit(false){}; void readEntries(); void datmask(std::vector &m){ mask.resize(m.size()); for (int i=0;i &dat); virtual void getAllDataSet(RidList &out); virtual int getDataSet(DataList &out); virtual int open(){fin.open(fname); eof=false;return 0;}; virtual int close(){fin.close(); d.clear();return 0;}; void take(int n,std::vector &a,std::vector &b); void getRidVector(std::vector &rid){ if (!read) readEntries(); rid.clear(); std::vector &dat = d.getData(); for (int i=0;i