/// SeqDb sequence source destructor: frees its internal data structure /// @param seq_src BlastSeqSrc structure to free [in] /// @return NULL static BlastSeqSrc* s_SeqDbSrcFree(BlastSeqSrc* seq_src) { if (!seq_src) return NULL; TSeqDBData * datap = static_cast<TSeqDBData*> (_BlastSeqSrcImpl_GetDataStructure(seq_src)); delete datap; return NULL; }
/// SeqDb sequence source copier: creates a new reference to the CSeqDB object /// and copies the rest of the BlastSeqSrc structure. /// @param seq_src BlastSeqSrc structure to copy [in] /// @return Pointer to the new BlastSeqSrc. static BlastSeqSrc* s_SeqDbSrcCopy(BlastSeqSrc* seq_src) { if (!seq_src) return NULL; TSeqDBData * datap = static_cast<TSeqDBData*> (_BlastSeqSrcImpl_GetDataStructure(seq_src)); _BlastSeqSrcImpl_SetDataStructure(seq_src, (void*) datap->clone()); return seq_src; }
/** Multi sequence source destructor: frees its internal data structure and the * BlastSeqSrc structure itself. * @param seq_src BlastSeqSrc structure to free [in] * @return NULL */ static BlastSeqSrc* s_MultiSeqSrcFree(BlastSeqSrc* seq_src) { MultiSeqInfo* seq_info; if (!seq_src) return NULL; seq_info = (MultiSeqInfo*)_BlastSeqSrcImpl_GetDataStructure(seq_src); seq_info = s_MultiSeqInfoFree(seq_info); return NULL; }
/** Multi sequence source copier; copies the MultiSeqInfo structure * @param seq_src BlastSeqSrc structure to copy [in] * @return New BlastSeqSrc structure */ static BlastSeqSrc* s_MultiSeqSrcCopy(BlastSeqSrc* seq_src) { MultiSeqInfo* seq_info; if (!seq_src) return NULL; seq_info = (MultiSeqInfo*) BlastMemDup (_BlastSeqSrcImpl_GetDataStructure(seq_src), sizeof(MultiSeqInfo)); seq_info->contents_allocated = FALSE; _BlastSeqSrcImpl_SetDataStructure(seq_src, (void*) seq_info); return seq_src; }