LIB_EXPORT rc_t CC KConfigMakeRepositoryMgrUpdate ( KConfig *self, KRepositoryMgr **mgrp ) { rc_t rc; if ( mgrp == NULL ) rc = RC ( rcKFG, rcMgr, rcConstructing, rcParam, rcNull ); else { if ( self == NULL ) rc = RC ( rcKFG, rcMgr, rcConstructing, rcSelf, rcNull ); else { KRepositoryMgr *mgr = calloc ( 1, sizeof * mgr ); if ( mgr == NULL ) rc = RC ( rcKFG, rcMgr, rcConstructing, rcMemory, rcExhausted ); else { rc = KConfigAddRef ( self ); if ( rc == 0 ) { mgr -> rw_cfg = self; KRefcountInit ( & mgr -> refcount, 1, "KRepositoryMgr", "make-update", "mgr" ); * mgrp = mgr; return 0; } free ( mgr ); } } * mgrp = NULL; } return rc; }
CKConfig::CKConfig(const CVDBMgr& mgr) { *x_InitPtr() = VFSManagerGetConfig(CVFSManager(mgr)); if ( rc_t rc = KConfigAddRef(*this) ) { *x_InitPtr() = 0; NCBI_THROW2(CSraException, eInitFailed, "Cannot get reference to KConfig", rc); } }
LIB_EXPORT rc_t CC KNSManagerMakeConfig ( KNSManager **mgrp, KConfig* kfg ) { rc_t rc; if ( mgrp == NULL ) rc = RC ( rcNS, rcMgr, rcAllocating, rcParam, rcNull ); else { KNSManager * mgr = calloc ( 1, sizeof * mgr ); if ( mgr == NULL ) rc = RC ( rcNS, rcMgr, rcAllocating, rcMemory, rcExhausted ); else { KRefcountInit ( & mgr -> refcount, 1, "KNSManager", "init", "kns" ); mgr -> conn_timeout = MAX_CONN_LIMIT; mgr -> conn_read_timeout = MAX_CONN_READ_LIMIT; mgr -> conn_write_timeout = MAX_CONN_WRITE_LIMIT; mgr -> http_read_timeout = MAX_HTTP_READ_LIMIT; mgr -> http_write_timeout = MAX_HTTP_WRITE_LIMIT; mgr -> maxTotalWaitForReliableURLs_ms = 10 * 60 * 1000; /* 10 min */ mgr -> maxNumberOfRetriesOnFailureForReliableURLs = 10; mgr -> verbose = false; rc = KNSManagerInit (); /* platform specific init in sysmgr.c ( in unix|win etc. subdir ) */ if ( rc == 0 ) { /* the manager is not a proper singleton */ if ( kns_manager_user_agent [ 0 ] == 0 ) { ver_t version = LIBKNS_VERS; KNSManagerSetUserAgent ( mgr, PKGNAMESTR " ncbi-vdb.%V", version ); } rc = KConfigAddRef ( kfg ); if ( rc == 0 ) { mgr -> kfg = kfg; rc = HttpRetrySpecsInit ( & mgr -> retry_specs, mgr -> kfg ); if ( rc == 0 ) { KNSManagerHttpProxyInit ( mgr ); * mgrp = mgr; return 0; } KConfigRelease ( kfg ); } } free ( mgr ); } * mgrp = NULL; } return rc; }