(
str.empty() || ! ibp)
92 const char* end =
str.data() +
str.size();
93 while(p < end && *p ==
' ')
96 while(p < end && *p >=
'0'&& *p <=
'9')
98 if(p < end && *p ==
'.') {
99 if(p + 1 >= end || *(p + 1) ==
'\n') {
135 autotibnp = ibl.before_begin();
137 while(! end_of_file) {
141tibnp = ibl.emplace_after(tibnp, entry);
155 while(! end_of_file &&
157 conststring_view line = finfo.
str;
158 if(line.starts_with(
"RM"sv)) {
161 if(after_SQ &&
isalpha(line.front())) {
163entry->
drop=
true;
172 if(line.starts_with(
"OC"sv))
179 if(after_AC ==
false) {
189 if(tokens.num > 2) {
199 if(! entry->
drop) {
200 if(after_AC ==
false) {
202entry->
drop=
true;
205 if(after_OS ==
false)
208 if(after_OC ==
false)
211 if(after_RN ==
false)
214 if(after_SQ ==
false)
222(*fun)(entry,
data->mBuf.ptr,
static_cast<Int4>(
data->mBuf.len));
237 for(
auto& it : ibl) {
DataBlk * LoadEntry(ParserPtr pp, size_t offset, size_t len)
#define ERR_FORMAT_MissingEnd
int fta_atoi(string_view sv)
bool fta_StartsWith(const char *s1, string_view s2)
#define FtaErrPost(sev, level,...)
static DLIST_TYPE *DLIST_NAME() next(DLIST_LIST_TYPE *list, DLIST_TYPE *item)
static const char * str(char *buf, int n)
int32_t Int4
4-byte (32-bit) signed integer
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
static bool StartsWith(const CTempString str, const CTempString start, ECase use_case=eCase)
Check if a string starts with a specified prefix value.
@ eNocase
Case insensitive compare.
IndexblkPtr InitialEntry(ParserPtr pp, FinfoBlk &finfo)
bool FindNextEntryBuf(bool end_of_file, FileBuf &fbuf, FinfoBlk &finfo, string_view keyword)
CRef< CDate_std > GetUpdateDate(string_view str, Parser::ESource source)
bool XReadFileBuf(FileBuf &fbuf, FinfoBlk &finfo)
void MsgSkipTitleFail(const char *flatfile, FinfoBlk &finfo)
bool SkipTitleBuf(FileBuf &fbuf, FinfoBlk &finfo, string_view keyword)
forward_list< unique_ptr< Indexblk > > TIndBlkList
#define ERR_ACCESSION_NoAccessNum
#define ERR_FORMAT_MissingField
#define ERR_ENTRY_InvalidLineType
const CConstRef< CSeq_id > GetAccession(const CSeq_id_Handle &id_handle)
static bool sp_err_field(const char *name)
vector< string > swissProtKeywords
bool SprotIndex(ParserPtr pp, void(*fun)(IndexblkPtr entry, char *offset, Int4 len))
static void SPGetVerNum(string_view str, IndexblkPtr ibp)
#define ParFlat_COL_DATA_SP
CRef< objects::CDate_std > date
vector< IndexblkPtr > entrylist
void PointToNextToken(char *&ptr)
TokenStatBlk TokenString(string_view str, Char delimiter)
Char * StringIStr(const Char *where, const Char *what)
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