static void CC RestoreReadWhack ( void *obj ) { RestoreRead * self = obj; if ( self != NULL ) { rc_t rc; rc = RefSeqMgr_Release( self->rmgr ); assert( rc == 0 ); free( self ); } }
LIB_EXPORT rc_t CC RefSeqMgr_Make( const RefSeqMgr** cself, const VDBManager* vmgr, uint32_t reader_options, size_t cache, uint32_t keep_open_num ) { rc_t rc = 0; RefSeqMgr* obj = NULL; if ( cself == NULL || vmgr == NULL ) { rc = RC( rcAlign, rcIndex, rcConstructing, rcParam, rcNull ); } else { obj = calloc( 1, sizeof( *obj ) ); if ( obj == NULL ) { rc = RC( rcAlign, rcIndex, rcConstructing, rcMemory, rcExhausted ); } else { rc = KConfigMake( &obj->kfg, NULL ); if ( rc == 0 ) { rc = VDBManagerAddRef( vmgr ); if ( rc == 0 ) { obj->vmgr = vmgr; obj->cache = cache; obj->num_open_max = keep_open_num; obj->reader_options = reader_options; } } } } if ( rc == 0 ) { *cself = obj; /* ALIGN_DBG( "max_open: %u", obj->num_open_max ); */ } else { RefSeqMgr_Release( obj ); ALIGN_DBGERR( rc ); } return rc; }