X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=inputdata.cpp;h=283fb7edc33856613612e10b0d293d0eea1f056d;hb=37eac2026d91179acda0494c4dcca22f176551b9;hp=5d1542739b0b0b6d6e730a5e84654468e3ca819f;hpb=605ab6fa594317a38f0df7bb6797740c735b2348;p=mothur.git diff --git a/inputdata.cpp b/inputdata.cpp index 5d15427..283fb7e 100644 --- a/inputdata.cpp +++ b/inputdata.cpp @@ -519,6 +519,15 @@ vector InputData::getSharedRAbundFloatVectors(){ if (SharedRelAbund != NULL) { return SharedRelAbund->getSharedRAbundFloatVectors(); } + }else if (format == "sharedfile") { + SharedRAbundVector* SharedRAbund = new SharedRAbundVector(fileHandle); + if (SharedRAbund != NULL) { + vector lookup = SharedRAbund->getSharedRAbundVectors(); + vector lookupFloat = SharedRAbund->getSharedRAbundFloatVectors(lookup); + for (int i = 0; i < lookup.size(); i++) { delete lookup[i]; } lookup.clear(); + return lookupFloat; + } + } m->gobble(fileHandle); } @@ -560,8 +569,32 @@ vector InputData::getSharedRAbundFloatVectors(string l }else{ break; } m->gobble(in); } - } + }else if (format == "sharedfile") { + while (in.eof() != true) { + + SharedRAbundVector* SharedRAbund = new SharedRAbundVector(in); + if (SharedRAbund != NULL) { + thisLabel = SharedRAbund->getLabel(); + + //if you are at the last label + if (thisLabel == label) { + in.close(); + vector lookup = SharedRAbund->getSharedRAbundVectors(); + vector lookupFloat = SharedRAbund->getSharedRAbundFloatVectors(lookup); + for (int i = 0; i < lookup.size(); i++) { delete lookup[i]; } lookup.clear(); + return lookupFloat; + }else { + //so you don't loose this memory + vector lookup = SharedRAbund->getSharedRAbundVectors(); + for (int i = 0; i < lookup.size(); i++) { delete lookup[i]; } lookup.clear(); + delete SharedRAbund; + } + }else{ break; } + m->gobble(in); + } + } } + //this is created to signal to calling function that the input file is at eof vector null; null.push_back(NULL);