boolean close_ThreeStateDB(ThreeStateScore * prev,ThreeStateDB * mdb) { if( prev != NULL ) free_ThreeStateScore(prev); if( mdb == NULL ) { warn("Trying to close a NULL threestatedb - considering this an error!"); return FALSE; } switch(mdb->dbtype) { case TSMDB_SINGLE : return TRUE; case TSMDB_HMMER1PFAM : fclose(mdb->current_file); mdb->current_file = NULL; return TRUE; /* name is the index! */ case TSMDB_PROTEIN : close_SequenceDB(NULL,mdb->sdb); return TRUE; /* sequence db's don't need opening for indexing */ case TSMDB_GENERIC : return ((*mdb->close_index_generic)(mdb)); default : warn("Unknown threestatemodel db type."); return FALSE; } warn("Should never get here!"); return FALSE; }
boolean close_cDNADB(ComplexSequence * cs,cDNADB * cdnadb) { if( cdnadb->is_single_seq == TRUE ) { return TRUE; } if( cs != NULL) free_ComplexSequence(cs); if( cdnadb->current != NULL) cdnadb->current = free_Sequence(cdnadb->current); return close_SequenceDB(NULL,cdnadb->sdb); }
boolean close_GenomicDB(ComplexSequence * cs,GenomicDB * gendb) { if( gendb->is_single_seq == TRUE ) { return TRUE; } if( cs != NULL) free_ComplexSequence(cs); if( gendb->current != NULL) gendb->current = free_Genomic(gendb->current); return close_SequenceDB(NULL,gendb->sdb); }