LIB_EXPORT rc_t CC TableReaderRefSeq_MakePath(const TableReaderRefSeq** cself, const VDBManager* vmgr, const char* path, uint32_t options, size_t cache) { rc_t rc = 0; const VTable* tbl = NULL; if( vmgr == NULL || path == NULL ) { rc = RC(rcAlign, rcType, rcConstructing, rcParam, rcNull); } else if( (rc = VDBManagerOpenTableRead(vmgr, &tbl, NULL, "%s", path)) == 0 ) { rc = TableReaderRefSeq_MakeTable(cself, vmgr, tbl, options, cache); VTableRelease(tbl); } if( rc == 0 ) { /* ALIGN_DBG("table %s opened 0x%p", path, *cself); */ } else { ALIGN_DBGERRP("table for %s", rc, path); } return rc; }
static rc_t RefSeq_RefSeq_odd_open(RefSeq *const super, RefSeqMgr const *const mgr) { struct RefSeq_RefSeq *const self = &super->u.refSeq; VTable const *tbl; rc_t rc = VDBManagerOpenTableRead(mgr->vmgr, &tbl, NULL, "ncbi-acc:%s?vdb-ctx=refseq", self->name); if (tbl) { char scheme[1024]; get_tbl_schema_info(tbl, sizeof(scheme), scheme); if (strcmp(scheme, "NCBI:refseq:tbl:reference") == 0) { rc = TableReaderRefSeq_MakeTable(&self->reader, mgr->vmgr, tbl, mgr->reader_options, mgr->cache); } else { rc = RC(rcAlign, rcTable, rcOpening, rcType, rcInvalid); } VTableRelease(tbl); } return rc; }