Return TypeFunction nameArguments
unsigned inthzDocHtml::ExtractLinksContent(hzMapS<hzUrl,hzString>&,const hzSet<hzString>&,const hzString&,)

Declared in file: hzDocument.h
Defined in file : hzDocHtml.cpp

Function Logic:

0:START 1:hzMapS::Clear nIndex 2:nIndex 3:pElement 4:pElement->Type()!=HTAG_ANCHOR 5:ai.Valid(); 6:hzAttrset::Name anam hzString::Equiv 7:anam.Equiv(href) 8:hzAttrset::Value link 9:!link 10:domains.Count() 11:hzUrl::Domain hzSet::Exists 12:!domains.Exists(link.Domain()) 13:criteria 14:!FormCheckCstr(*link,*criteria) 15:S hzMapS::Insert 16:Return links.Count()

Function body:

unsigned int hzDocHtml::ExtractLinksContent (hzMapS<hzUrl,hzString>& links, const hzSet<hzString>& domains, const hzString& criteria)
{
   hzHtmElem*      pElement ;
   hzAttrset       ai ;
   hzString        anam ;
   hzString        S ;
   hzUrl           link ;
   uint32_t        nIndex ;
   links.Clear() ;
   for (nIndex = 0; nIndex < m_vecTags.Count() ; nIndex++)
   {
       pElement = m_vecTags[nIndex] ;
       if (pElement->Type() != HTAG_ANCHOR)
           continue ;
       for (ai = pElement ; ai.Valid() ; ai.Advance())
       {
           anam = ai.Name() ;
           if (anam.Equiv("href"))
           {
               link = ai.Value() ;
               if (!link)
                   continue ;
               if (domains.Count())
               {
                   if (!domains.Exists(link.Domain()))
                       continue ;
               }
               if (criteria)
               {
                   if (!FormCheckCstr(*link, *criteria))
                       continue ;
               }
               S = pElement->m_tmpContent ;
               links.Insert(link, S) ;
           }
       }
   }
   return links.Count() ;
}