int Instance::Load(FileBuffer &buffer) { if (buffer.Eof()) return -1; mFeatures.clear(); mLabels.clear(); int numFeature; buffer.GetNextData(numFeature); if (buffer.Eof()) return -1; for (int i = 0; i < numFeature; ++i) { if (buffer.Eof()) { cerr << "Error: Load Instance error,FileBuffer empty unexpected!" << endl; return -1; } int key; double value; buffer.GetNextData(key); buffer.GetNextData(value); mFeatures[key] = value; } int numLabel; buffer.GetNextData(numLabel); for (int i = 0; i < numLabel; ++i) { if (buffer.Eof()) { cerr << "Error: Load Instance error,FileBuffer empty unexpected!" << endl; return -1; } int labelId; buffer.GetNextData(labelId); mLabels.insert(labelId); } return 0; }
int QueryTable::Load(FileBuffer& buffer, int printLog) { int rtn = 0; int cnt = 0; size_t len = 0; buffer.GetNextData(len); for (size_t i = 0; i < len; ++i) { if (buffer.Eof()) return -1; double key, value; rtn = buffer.GetNextData(key); CHECK_RTN(rtn); rtn = buffer.GetNextData(value); CHECK_RTN(rtn); mQueryTable.push_back(make_pair(key, value)); ++cnt; } sort(mQueryTable.begin(), mQueryTable.end()); if (printLog != SILENT) clog << "Total Load " << cnt << " querytable instances" << endl; return 0; }
int MeshInfoSet::Load(FileBuffer& buffer, int printLog) { if (buffer.Eof()) return -1; int rtn = 0; rtn = buffer.GetNextData(mTotalCitationNum); CHECK_RTN(rtn); rtn = buffer.GetNextData(mUniqueMeshNum); CHECK_RTN(rtn); rtn = buffer.GetNextData(mUniqueMeshPairNum); CHECK_RTN(rtn); rtn = buffer.GetNextData(mSumMeshOcurNum); CHECK_RTN(rtn); rtn = buffer.GetNextData(mMeshOcurNum); CHECK_RTN(rtn); rtn = buffer.GetNextData(mMeshPairOcurNum); CHECK_RTN(rtn); rtn = buffer.GetNextData(mTitleMeshEntryOcurNum); CHECK_RTN(rtn); rtn = buffer.GetNextData(mTitleMeshEntryPairOcurNum); CHECK_RTN(rtn); rtn = buffer.GetNextData(mAbstractMeshEntryOcurNum); CHECK_RTN(rtn); rtn = buffer.GetNextData(mAbstractMeshEntryPairOcurNum); CHECK_RTN(rtn); rtn = InitializeMeshNeiboNum(mMeshPairOcurNum, mMeshNeiboNum); CHECK_RTN(rtn); if (printLog != SILENT) clog << "MeshInfoSet load completed, loaded " << mTotalCitationNum << " citations" << endl; return 0; }