46 #define DEFAULT_TIMEOUT 20
47 #define DEFAULT_OPEN_TIMEOUT 5
48 #define DEFAULT_OPEN_TIMEOUT_MAX 30
49 #define DEFAULT_OPEN_TIMEOUT_MULTIPLIER 1.5
50 #define DEFAULT_OPEN_TIMEOUT_INCREMENT 0
99 typedef vector< AutoPtr<SSERV_Info, CDeleter<SSERV_Info> > >
TSkipServers;
194 net_info->max_try = 1;
205 memset(¶ms, 0,
sizeof(params));
215 params.
data = scan_ptr;
216 scan_ptr->AddReference();
225 scan_info = scan_ptr;
230 if ( !stream.bad() ) {
233 s <<
"Waiting for connector...";
238 s <<
"Got connector.";
241 info.m_ServerInfo = scan_info->m_CurrentServer;
247 s <<
" total: "<<scan_info->m_TotalCount;
248 s <<
" skipped: "<<scan_info->m_SkippedCount;
251 scan_info->m_TotalCount == scan_info->m_SkippedCount ) {
254 s <<
"Clearing skip servers.";
286 : m_ServiceName(service_name),
306 const string& driver_name)
323 s <<
"added skip: "<<
334 tmout->
sec = unsigned(timeout);
335 tmout->
usec = unsigned((timeout-tmout->
sec)*1e6);
This stream exchanges data with an HTTP server located at the URL: http[s]://host[:port]/path[?...
Base class, inherited from "std::iostream", does both input and output, using the specified CONNECTOR...
This stream exchanges data with a named service, in a constraint that the service is implemented as o...
void Init(CConfig &conf, const string &driver_name, const SAllParams ¶ms)
CReaderServiceConnector(void)
void SetOpenTimeoutTo(STimeout *tmout, int error_count) const
void RememberIfBad(SConnInfo &conn_info)
void InitTimeouts(CConfig &conf, const string &driver_name)
~CReaderServiceConnector(void)
SConnInfo Connect(int error_count=0)
TSkipServers m_SkipServers
string GetConnDescription(CConn_IOStream &stream) const
CIncreasingTime m_OpenTimeout
void SetServiceName(const string &service_name)
static void x_SetTimeoutTo(STimeout *tmout, double timeout)
vector< AutoPtr< SSERV_Info, CDeleter< SSERV_Info > > > TSkipServers
static CS_CONNECTION * conn
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
element_type * get(void) const
Get pointer.
char * CONN_Description(CONN conn)
Return a human-readable description of the connection as a character '\0'-terminated string.
FSERVICE_GetNextInfo get_next_info
EIO_Status CONN_Wait(CONN conn, EIO_Event event, const STimeout *timeout)
Block on the connection until it becomes available for either reading or writing (depending on "event...
@ fHTTP_NoAutoRetry
No auto-retries allowed.
int GetInt(const string &driver_name, const string ¶m_name, EErrAction on_error, int default_value, const list< string > *synonyms=NULL)
Utility function to get an integer element of parameter tree Throws an exception when mandatory param...
@ eErr_NoThrow
Return default value on error.
void RemoveReference(void) const
Remove reference to object.
#define NCBI_PARAM_TYPE(section, name)
Generate typename for a parameter from its {section, name} attributes.
@ eParam_NoThread
Do not use per-thread values.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define END_SCOPE(ns)
End the previously defined scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
#define BEGIN_SCOPE(ns)
Define a new scope.
SSERV_Info * SERV_CopyInfo(const SSERV_Info *info)
SSERV_InfoCPtr SERV_GetNextInfo(SERV_ITER iter)
Same as "SERV_GetNextInfoEx(., 0)" – i.e.
int SERV_EqualInfo(const SSERV_Info *info1, const SSERV_Info *info2)
static string ntoa(unsigned int host)
BSD-like API. NB: when int, "host" must be in network byte order.
static bool StartsWith(const CTempString str, const CTempString start, ECase use_case=eCase)
Check if a string starts with a specified prefix value.
unsigned int usec
microseconds (modulo 1,000,000)
SConnNetInfo * ConnNetInfo_Create(const char *service)
void ConnNetInfo_Destroy(SConnNetInfo *net_info)
string s_Value(TValue value)
Parameters initialization model.
Multi-threading – classes, functions, and features.
Defines: CTimeFormat - storage class for time format.
static void s_ScanInfoCleanup(void *data)
#define DEFAULT_OPEN_TIMEOUT_MULTIPLIER
NCBI_PARAM_DECL(int, GENBANK, CONN_DEBUG)
static void s_ScanInfoReset(void *data)
NCBI_PARAM_DEF_EX(int, GENBANK, CONN_DEBUG, 0, eParam_NoThread, GENBANK_CONN_DEBUG)
#define DEFAULT_OPEN_TIMEOUT_MAX
static const SSERV_Info * s_ScanInfoGetNextInfo(void *data, SERV_ITER iter)
#define DEFAULT_OPEN_TIMEOUT_INCREMENT
static int s_GetDebugLevel(void)
#define DEFAULT_OPEN_TIMEOUT
CReader::CDebugPrinter CDebugPrinter
static CIncreasingTime::SAllParams s_OpenTimeoutParams
#define NCBI_GBLOADER_READER_PARAM_OPEN_TIMEOUT_MAX
#define NCBI_GBLOADER_READER_PARAM2_OPEN_TIMEOUT_MAX
#define NCBI_GBLOADER_READER_PARAM_OPEN_TIMEOUT_INCREMENT
#define NCBI_GBLOADER_READER_PARAM_TIMEOUT
#define NCBI_GBLOADER_READER_PARAM2_OPEN_TIMEOUT_MULTIPLIER
#define NCBI_GBLOADER_READER_PARAM2_OPEN_TIMEOUT_INCREMENT
#define NCBI_GBLOADER_READER_PARAM_OPEN_TIMEOUT
#define NCBI_GBLOADER_READER_PARAM_OPEN_TIMEOUT_MULTIPLIER
const SSERV_Info * m_ServerInfo
static void Delete(SConnNetInfo *object)
C Language deallocation function.
static void Delete(SConnNetInfo *object)
C Language deallocation function.
bool SkipServer(const SSERV_Info *server)
SServerScanInfo(const TSkipServers &skip_servers)
const SSERV_Info * m_CurrentServer
const TSkipServers & m_SkipServers
vector< AutoPtr< SSERV_Info, CDeleter< SSERV_Info > > > TSkipServers