49 : m_host( host ), m_ppEntries( 0 ), m_nCacheCapacity( 10 )
57 for( list<SCacheEntry*>::iterator
i =
m_lCache.begin();
89 pNode->
SetCde( 0x40000000 );
94 if( nCapacity != 0 ) {
110 return *ppNode !=
NULL;
135 if( lLin.front()->GetTaxid() != tax_id ) {
140 list< CRef< CTaxon1_name > >::reverse_iterator
i;
142 for(
i = lLin.rbegin();
i != lLin.rend(); ++
i ) {
156 for( ;
i != lLin.rend(); ++
i ) {
171 "Response type is not Taxalineage" );
208 if( pNode && (pEntry=pNode->
GetEntry()) ) {
307 list< CRef< CTaxon1_info > >& lRecords = resp.
SetGetdomain();
309 storage.
SetId( lRecords.front()->GetIval1() );
310 int nof_fields = lRecords.front()->GetIval2();
311 storage.
SetName( lRecords.front()->GetSval() );
312 lRecords.pop_front();
314 while( nof_fields-- && !lRecords.empty() ) {
315 storage.
AddField( lRecords.front()->GetIval1(), lRecords.front()->GetIval2(), lRecords.front()->GetSval() );
316 lRecords.pop_front();
320 i != lRecords.end(); ++
i ) {
321 if( (*i)->IsSetSval() ) {
322 storage.
InsertFieldValue( (*i)->GetIval1(), (*i)->GetIval2(), (*i)->GetSval() );
375 return ci->second.c_str();
387 if( ci->second.compare( pchName ) == 0 )
405 const list< CRef< CTaxon1_info > >&
463 if( !sCode.empty() ) {
464 return sCode.c_str();
560 bool bResult =
false;
616 bool bResult =
false;
633 bool bResult =
false;
648 bool bResult =
false;
687 vector< const CTreeContNodeBase* > v;
693 vector< const CTreeContNodeBase* >::const_iterator vi;
696 if( vi != v.end() ) {
771 return pNode && ( pNode->
IsRoot() ||
787 if(
m_types.size() <= field_no ) {
802 vector< CDomainStorage::TValue >&
val =
m_values[val_id];
803 val.resize(
val.size()+1 );
821 if( cj->second[ci->second].m_str == searchstring ) {
835 if( cj->second[ci->second].m_int == fieldValue ) {
849 return cj->second[ci->second].m_int;
860 return cj->second[ci->second].m_str;
void InsertFieldValue(int val_id, int str_len, const string &str)
int FindValueIdByField(const string &fieldName, const string &searchstring) const
const string & FindFieldStringById(int value_id, const string &fieldName) const
int FindFieldValueById(int value_id, const string &fieldName) const
static const int kIllegalValue
void AddField(int field_no, int val_type, const string &name)
void SetName(const string &n)
bool HasField(const string &field_name) const
TTaxNameClass FindNameClassByName(const char *pchName)
TNameClassMap m_ncStorage
TTaxRank m_nSubspeciesRank
TTaxNameClass m_ncPrefCommon
bool LookupAndAdd(TTaxId tax_id, CTaxon1Node **ppData)
const char * GetNameClassName(short nc)
const char * GetDivisionName(TTaxDivision div_id)
TTaxRank FindRankByName(const char *pchName)
bool Insert2(CTaxon1Node &node)
unsigned m_nCacheCapacity
bool Lookup(TTaxId tax_id, CTaxon1Node **ppNode)
COrgRefCache(CTaxon1 &host)
CDomainStorage m_divStorage
CDomainStorage m_rankStorage
TTaxDivision FindDivisionByCode(const char *pchCode)
TTaxDivision FindDivisionByName(const char *pchName)
bool LookupAndInsert(TTaxId tax_id, CTaxon2_data **ppData)
TTaxRank m_nSuperkingdomRank
CTaxon1Node ** m_ppEntries
const char * GetRankName(int rank)
TNameClassMap::const_iterator TNameClassMapCI
bool Init(unsigned nCapacity=10)
bool InitDomain(const string &name, CDomainStorage &storage)
void SetIndexEntry(int id, CTaxon1Node *pNode)
const char * GetDivisionCode(TTaxDivision div_id)
list< SCacheEntry * > m_lCache
TTaxId SetTaxId(TTaxId tax_id)
static void SetOrgrefProp(ncbi::objects::COrg_ref &org, const std::string &prop_name, const std::string &prop_val)
const CTreeContNodeBase * CastIC(const ITaxon1Node *p) const
virtual bool GoNode(const ITaxon1Node *pNode)
virtual bool GoAncestor(const ITaxon1Node *pNode)
virtual bool IsVisible(const CTreeContNodeBase *p) const =0
virtual bool IsFirstChild() const
const ITaxon1Node * CastCI(const CTreeContNodeBase *p) const
virtual bool IsTerminal() const
CTreeConstIterator * m_it
virtual bool IsLastChild() const
bool NextVisible(const CTreeContNodeBase *pParent) const
virtual bool BelongSubtree(const ITaxon1Node *subtree_root) const
virtual bool AboveNode(const ITaxon1Node *node) const
COrgRefCache::SCacheEntry * m_cacheEntry
virtual TTaxId GetTaxId() const
COrgRefCache::SCacheEntry * GetEntry()
bool SendRequest(CTaxon1_req &req, CTaxon1_resp &resp, bool bShouldReconnect=true)
TOrgRefStatus x_ConvertOrgrefProps(CTaxon2_data &data)
void SetLastError(const char *err_msg)
virtual bool IsVisible(const CTreeContNodeBase *p) const
virtual bool IsVisible(const CTreeContNodeBase *p) const
const CTreeContNodeBase * GetNode() const
bool GoNode(const CTreeContNodeBase *pNode)
bool IsFirstChild() const
const CTreeContNodeBase * Child() const
bool SetRoot(CTreeContNodeBase *root)
CTreeIterator * GetIterator()
Base class for all iterators over modifiable object.
CTreeContNodeBase * GetNode() const
bool AddChild(CTreeContNodeBase *new_node)
bool GoNode(CTreeContNodeBase *node)
virtual bool IsVisible(const CTreeContNodeBase *p) const
virtual const string & GetBlastName() const =0
container_type::const_iterator const_iterator
const_iterator begin() const
const_iterator end() const
iterator_bool insert(const value_type &val)
container_type::value_type value_type
const_iterator find(const key_type &key) const
static DLIST_TYPE *DLIST_NAME() next(DLIST_LIST_TYPE *list, DLIST_TYPE *item)
static const char * str(char *buf, int n)
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define TAX_ID_TO(T, tax_id)
SStrictId_Tax::TId TTaxId
Taxon id type.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
TGetdomain & SetGetdomain(void)
Select the variant.
void SetGetcde(void)
Select the variant.
const TGetcde & GetGetcde(void) const
Get the variant data.
void SetTaxid(TTaxid value)
Assign a value to Taxid data member.
bool IsLookup(void) const
Check if variant Lookup is selected.
bool IsGetdomain(void) const
Check if variant Getdomain is selected.
const TOrg & GetOrg(void) const
Get the Org member data.
void SetOrg(TOrg &value)
Assign a value to Org data member.
TMaxtaxid GetMaxtaxid(void) const
Get the variant data.
bool IsTaxalineage(void) const
Check if variant Taxalineage is selected.
void SetOname(const TOname &value)
Assign a value to Oname data member.
TLookup & SetLookup(void)
Select the variant.
bool IsGetcde(void) const
Check if variant Getcde is selected.
TGetdomain & SetGetdomain(void)
Select the variant.
TTaxalineage & SetTaxalineage(void)
Select the variant.
TTaxalineage & SetTaxalineage(void)
Select the variant.
const TLookup & GetLookup(void) const
Get the variant data.
bool IsMaxtaxid(void) const
Check if variant Maxtaxid is selected.
void SetMaxtaxid(void)
Select the variant.
void SetCde(TCde value)
Assign a value to Cde data member.
const GenericPointer< typename T::ValueType > T2 value
CTaxon1Node * m_pTreeNode
CRef< CTaxon2_data > m_pTax2
short int TTaxRank
Primitive types for some taxon1 object fields.