예제 #1
0
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;

}
예제 #2
0
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);
}
예제 #3
0
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);
}