BlastSeqSrc* SeqDbBlastSeqSrcInit(const string& dbname, bool is_prot, Uint4 first_seq, Uint4 last_seq, Int4 mask_algo_id, ESubjectMaskingType mask_type) { BlastSeqSrcNewInfo bssn_info; BlastSeqSrc* seq_src = NULL; CSeqDbSrcNewArgs seqdb_args(dbname, is_prot, first_seq, last_seq, mask_algo_id, mask_type); bssn_info.constructor = &s_SeqDbSrcNew; // FIXME: shouldn't this be s_SeqDbSrcSharedNew? bssn_info.ctor_argument = (void*) &seqdb_args; seq_src = BlastSeqSrcNew(&bssn_info); return seq_src; }
BlastSeqSrc* SeqDbBlastSeqSrcInit(CSeqDB * seqdb, Int4 mask_algo_id, ESubjectMaskingType mask_type) { BlastSeqSrcNewInfo bssn_info; BlastSeqSrc * seq_src = NULL; TSeqDBData data(seqdb, mask_algo_id, mask_type); bssn_info.constructor = & s_SeqDbSrcSharedNew; bssn_info.ctor_argument = (void*) & data; seq_src = BlastSeqSrcNew(& bssn_info); return seq_src; }
BlastSeqSrc* MultiSeqBlastSeqSrcInit(SeqLoc* seqloc_list, EBlastProgramType program) { BlastSeqSrc* seq_src; BlastSeqSrcNewInfo bssn_info; MultiSeqSrcNewArgs* args = (MultiSeqSrcNewArgs*) calloc(1, sizeof(MultiSeqSrcNewArgs));; args->seqloc_list = seqloc_list; args->program = program; bssn_info.constructor = &s_MultiSeqSrcNew; bssn_info.ctor_argument = (void*) args; seq_src = BlastSeqSrcNew(&bssn_info); sfree(args); return seq_src; }