X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=sequencedb.cpp;h=9ddb40f44a7e9ded9ba12a625e647c5abd3bed43;hb=6e81846c8e5b2614f6b06643a9f558fb0e6669fa;hp=e0bd10033459896f10c2d42fb9b3b4f6921add7f;hpb=faf4e99552d6fb4595ff348b1f909ddc74536da2;p=mothur.git diff --git a/sequencedb.cpp b/sequencedb.cpp index e0bd100..9ddb40f 100644 --- a/sequencedb.cpp +++ b/sequencedb.cpp @@ -15,7 +15,7 @@ /***********************************************************************/ -SequenceDB::SequenceDB() {} +SequenceDB::SequenceDB() { m = MothurOut::getInstance(); } /***********************************************************************/ //the clear function free's the memory SequenceDB::~SequenceDB() { clear(); } @@ -23,31 +23,20 @@ SequenceDB::~SequenceDB() { clear(); } /***********************************************************************/ SequenceDB::SequenceDB(int newSize) { - data.resize(newSize, NULL); + data.resize(newSize, Sequence()); } /***********************************************************************/ SequenceDB::SequenceDB(ifstream& filehandle) { try{ - string name, sequence, line; - sequence = ""; - int c; - string temp; - - + //read through file - while ((c = filehandle.get()) != EOF) { - name = ""; sequence = ""; - //is this a name - if (c == '>') { - name = readName(filehandle); - sequence = readSequence(filehandle); - }else { cout << "Error fasta in your file. Please correct." << endl; } - + while (!filehandle.eof()) { //input sequence info into sequencedb - Sequence* newSequence = new Sequence(name, sequence); - data.push_back(newSequence); + Sequence newSequence(filehandle); + + if (newSequence.getName() != "") { data.push_back(newSequence); } //takes care of white space gobble(filehandle); @@ -57,11 +46,7 @@ SequenceDB::SequenceDB(ifstream& filehandle) { } catch(exception& e) { - cout << "Standard Error: " << e.what() << " has occurred in the SequenceDB class Function SequenceDB. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; - exit(1); - } - catch(...) { - cout << "An unknown error has occurred in the SequenceDB class function SequenceDB. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; + m->errorOut(e, "SequenceDB", "SequenceDB"); exit(1); } } @@ -82,11 +67,7 @@ string SequenceDB::readName(ifstream& in) { return name; } catch(exception& e) { - cout << "Standard Error: " << e.what() << " has occurred in the SequenceDB class Function readName. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; - exit(1); - } - catch(...) { - cout << "An unknown error has occurred in the SequenceDB class function readName. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; + m->errorOut(e, "SequenceDB", "readName"); exit(1); } } @@ -115,11 +96,7 @@ string SequenceDB::readSequence(ifstream& in) { return sequence; } catch(exception& e) { - cout << "Standard Error: " << e.what() << " has occurred in the SequenceDB class Function readSequence. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; - exit(1); - } - catch(...) { - cout << "An unknown error has occurred in the SequenceDB class function readSequence. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; + m->errorOut(e, "SequenceDB", "readSequence"); exit(1); } } @@ -134,41 +111,29 @@ int SequenceDB::getNumSeqs() { void SequenceDB::set(int index, string newUnaligned) { try { - if (data[index] != NULL) { delete data[index]; } //free memory - - Sequence* newSeq = new Sequence(data[index]->getName(), newUnaligned); - data[index] = newSeq; + data[index] = Sequence(data[index].getName(), newUnaligned); } catch(exception& e) { - cout << "Standard Error: " << e.what() << " has occurred in the SequenceDB class Function set. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; - exit(1); - } - catch(...) { - cout << "An unknown error has occurred in the SequenceDB class function set. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; + m->errorOut(e, "SequenceDB", "set"); exit(1); } } /***********************************************************************/ -void SequenceDB::set(int index, Sequence* newSeq) { +void SequenceDB::set(int index, Sequence newSeq) { try { - if (data[index] != NULL) { delete data[index]; } //free memory data[index] = newSeq; } catch(exception& e) { - cout << "Standard Error: " << e.what() << " has occurred in the SequenceDB class Function set. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; - exit(1); - } - catch(...) { - cout << "An unknown error has occurred in the SequenceDB class function set. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; + m->errorOut(e, "SequenceDB", "set"); exit(1); } } /***********************************************************************/ -Sequence* SequenceDB::get(int index) { +Sequence SequenceDB::get(int index) { return data[index]; } @@ -176,17 +141,10 @@ Sequence* SequenceDB::get(int index) { void SequenceDB::resize(int newSize) { try { - int size = data.size(); - - for (int i = size; i > newSize; i--) { delete data[i]; } data.resize(newSize); } catch(exception& e) { - cout << "Standard Error: " << e.what() << " has occurred in the SequenceDB class Function resize. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; - exit(1); - } - catch(...) { - cout << "An unknown error has occurred in the SequenceDB class function resize. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; + m->errorOut(e, "SequenceDB", "resize"); exit(1); } } @@ -195,15 +153,10 @@ void SequenceDB::resize(int newSize) { void SequenceDB::clear() { try { - for (int i = 0; i < data.size(); i++) { delete data[i]; } data.clear(); } catch(exception& e) { - cout << "Standard Error: " << e.what() << " has occurred in the SequenceDB class Function clear. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; - exit(1); - } - catch(...) { - cout << "An unknown error has occurred in the SequenceDB class function clear. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; + m->errorOut(e, "SequenceDB", "clear"); exit(1); } } @@ -219,31 +172,23 @@ int SequenceDB::size() { void SequenceDB::print(ostream& out) { try { for(int i = 0; i < data.size(); i++) { - data[i]->printSequence(out); + data[i].printSequence(out); } } catch(exception& e) { - cout << "Standard Error: " << e.what() << " has occurred in the SequenceDB class Function print. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; - exit(1); - } - catch(...) { - cout << "An unknown error has occurred in the SequenceDB class function print. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; + m->errorOut(e, "SequenceDB", "print"); exit(1); } } /***********************************************************************/ -void SequenceDB::push_back(Sequence* newSequence) { +void SequenceDB::push_back(Sequence newSequence) { try { data.push_back(newSequence); } catch(exception& e) { - cout << "Standard Error: " << e.what() << " has occurred in the SequenceDB class Function add. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; - exit(1); - } - catch(...) { - cout << "An unknown error has occurred in the SequenceDB class function add. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; + m->errorOut(e, "SequenceDB", "push_back"); exit(1); } }