(
m_Host.empty() ||
m_Url.empty())
return false;
59 for(
intattempt = 0; attempt < 5; ++attempt) {
84 intsleep_secs = ::sqrt((
double)attempt);
112string::size_type pos =
m_Path.rfind(suffix);
113 return(pos != string::npos && pos ==
m_Path.size() - strlen(suffix));
117 bool error(
const string& message)
131 if( !
m_Path.empty() ) {
147string::size_type pos =
m_Path.find_last_of(
"/");
148 if(pos != string::npos) {
157 bool text(
const string& contents)
159 if(contents.empty()) {
163 boolempty_text =
true;
165 for(
i= 0;
i< contents.length();
i++) {
166 if(contents [
i] !=
' '&&
167contents [
i] !=
'\n'&&
168contents [
i] !=
'\r'&&
169contents [
i] !=
'\t') {
177 if(!
Text(contents)) {
196 m_Host=
"eutils.ncbi.nlm.nih.gov";
197 m_Url=
"/entrez/eutils/esearch.fcgi";
201 bool Text(
const string& contents)
211 if(
m_Uids.size() > 0)
return true;
225 m_Host=
"eutils.ncbi.nlm.nih.gov";
226 m_Url=
"/entrez/eutils/esummary.fcgi";
242 if(!
PathSuffixIs(
"/DocumentSummary"))
return true;
244 if(
m_Iso.empty())
return true;
248}
else if(!
m_Title.empty()) {
250}
else if(!
m_Issn.empty()) {
259 bool Text(
const string& contents)
261 if(
PathSuffixIs(
"/DocumentSummary/ISOAbbreviation")) {
262 if(
m_Iso.empty()) {
281 if(
m_Strs.size() > 0)
return true;
2950x00, 0x01, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2970x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2990x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
3010x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1F,
3030x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x27,
3050x20, 0x20, 0x20, 0x20, 0x2C, 0x20, 0x20, 0x2F,
3070x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
3090x38, 0x39, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
3110x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
3130x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
3150x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
3170x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
3190x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
3210x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
3230x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
3250x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
3270x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
3290x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
3310x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
3330x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F,
3350xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7,
3370xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
3390xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7,
3410xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
3430xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
3450xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
3470xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
3490xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
3510xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
3530xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
3550xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
3570xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
368 bool DoOneESearch(
stringdb,
stringterm,
stringfield, vector<int>& uids)
376 query+=
"&retmode=xml&retmax=200";
390 query+=
"&retmax=200&version=2.0&id=";
391 for(
size_t i= 0;
i< uids.size();
i++) {
407 if(
str.length() != 9)
return false;
410 if(ch !=
'-'&& ch !=
' '&& ch !=
'+')
return false;
412 for(
int i= 0;
i< 9;
i++) {
414 if(ch >=
'0'&& ch <=
'9')
continue;
416 if(ch ==
'-'|| ch ==
'+'|| ch ==
' ')
continue;
419 if(ch ==
'X'|| ch ==
'x')
continue;
431 for(
size_t i= 0;
i<
journal.size();
i++) {
495 m_out= args[
"o"] ? &(args[
"o"].AsOutputFile()) : &cout;
496 m_journal= args[
"journal"].AsString();
This stream exchanges data with an HTTP server located at the URL: http[s]://host[:port]/path[?...
bool LooksLikeISSN(string str)
bool DoOneESummary(string db, vector< int > &uids, vector< string > &strs)
bool DoJournalSearch(string journal, vector< int > &uids)
bool DoOneESearch(string db, string term, string field, vector< int > &uids)
bool DoJournalSummary(vector< int > &uids, vector< string > &strs)
bool Text(const string &contents)
CESearchGeneric(vector< int > &uids)
vector< string > & m_Strs
bool Text(const string &contents)
bool EndElement(const string &name)
bool StartElement(const string &name)
CESummaryGeneric(vector< string > &strs)
virtual bool EndElement(const std::string &name)
bool error(const string &message)
bool start_element(const string &name, const attrs_type &attrs)
bool PathSuffixIs(const char *suffix)
bool TryQuery(string query)
virtual bool StartElement(const std::string &name)
bool warning(const string &message)
bool end_element(const string &name)
virtual bool Text(const std::string &contents)
bool text(const string &contents)
virtual void SeqEntryInitialize(CRef< CSeq_entry > &se)
void ProcessInitialize(const CArgs &args)
void ProcessInitialize(const CArgs &args)
virtual void SeqEntryInitialize(CRef< CSeq_entry > &se)
The xml::error_messages class is used to store all the error message which are collected while parsin...
bool has_fatal_errors(void) const
Check if there are fatal errors in the error messages.
bool has_errors(void) const
Check if there are errors in the error messages.
std::string print(void) const
Convert error messages into a single printable string.
The xml::event_parser is used to parse an XML document by calling member functions when certain thing...
std::map< std::string, std::string > attrs_type
a type for holding XML node attributes
bool parse_stream(std::istream &stream, error_messages *messages, warnings_as_errors_type how=type_warnings_not_errors)
Parse what ever data that can be read from the given stream.
Include a standard set of the NCBI C++ Toolkit most basic headers.
This file contains the definition of the xml::event_parser class.
static const char * str(char *buf, int n)
#define ERR_POST(message)
Error posting with file, line number information but without error codes.
void Error(CExceptionArgs_Base &args)
void Warning(CExceptionArgs_Base &args)
IO_PREFIX::ostream CNcbiOstream
Portable alias for ostream.
static int StringToInt(const CTempString str, TStringToNumFlags flags=0, int base=10)
Convert string to int.
static string IntToString(int value, TNumToStringFlags flags=0, int base=10)
Convert int to string.
static string URLEncode(const CTempString str, EUrlEncode flag=eUrlEnc_SkipMarkChars)
URL-encode string.
unsigned int
A callback function used to compare two keys in a database.
void SleepSec(unsigned long sec, EInterruptOnSignal onsignal=eRestartOnSignal)
Sleep.
static unsigned char _ToKey[256]
CRef< CPub > journal(ParserPtr pp, char *bptr, char *eptr, CRef< CAuth_list > &auth_list, CRef< CTitle::C_E > &title, bool has_muid, CRef< CCit_art > &cit_art, Int4 er)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4