Return TypeFunction nameArguments
voidhdsHtag::Generate(hzChain&,hzHttpEvent*,unsigned int&,)

Declared in file: hzDissemino.h
Defined in file : hdsGenerate.cpp

Function Logic:

0:START 1:m_Line!=nLine 2:hzChain::AddByte n 3:n; 4:hzChain::AddByte 5:nLine 6:hzChain::AddByte items 7:m_nAttrs 8:hzMapM::First aLo 9:aLo>=0 10:hzMapM::Last aHi nA 11:nA<=aHi; 12:hzMapM::GetObj pa hzChain::AddByte items hzChain::AddByte hzChain::AddByte 13:pE&&(m_flagVE&VE_AT_ACTIVE) 14:hdsApp::ConvertText 15:items 16:hzChain::AddByte 17:hzChain::AddByte hdsVE::Children hdsVE::Sibling Children pVE 18:pVE; 19:pVE->m_strPretext 20:S 21:pE&&(pVE->m_flagVE&VE_PT_ACTIVE) 22:hdsApp::ConvertText 23:items 24:hdsVE::Generate 25:m_strContent 26:S 27:pE&&m_flagVE&VE_CT_ACTIVE 28:hdsApp::ConvertText 29:items 30:S TagLookup tagForm 31:tagForm.rule!=HTRULE_SINGLE 32:nLine!=m_Line 33:hzChain::AddByte n 34:n; 35:hzChain::AddByte 36:nLine 37:hzChain::AddByte hzChain::AddByte items hzChain::AddByte 38: No text

Function body:

void hdsHtag::Generate (hzChain& C, hzHttpEvent* pE, unsigned int& nLine)
{
   _hzfunc("hdsHtag::Generate") ;
   hdsVE*      pVE ;
   hzPair      pa ;
   hzString    S ;
   uint32_t    n ;
   int32_t     aLo ;
   int32_t     aHi ;
   int32_t     nA ;
   hzHtagform  tagForm ;
   if (m_Line != nLine)
   {
       C.AddByte(CHAR_NL) ;
       for (n = m_Indent ; n ; n--)
           C.AddByte(CHAR_TAB) ;
       nLine = m_Line ;
   }
   C.AddByte(CHAR_LESS) ;
   C << m_Tag ;
   if (m_nAttrs)
   {
       aLo = m_pApp->m_VE_attrs.First(m_VID) ;
       if (aLo >&eq; 0)
       {
           aHi = m_pApp->m_VE_attrs.Last(m_VID) ;
           for (nA = aLo ; nA <&eq; aHi ; nA++)
           {
               pa = m_pApp->m_VE_attrs.GetObj(nA) ;
               C.AddByte(CHAR_SPACE) ;
               C << *pa.name ;
               C.AddByte(CHAR_EQUAL) ;
               C.AddByte(CHAR_DQUOTE) ;
               if (pE && (m_flagVE & VE_AT_ACTIVE))
                   C << m_pApp->ConvertText(*pa.value, pE) ;
               else
                   C << *pa.value ;
               C.AddByte(CHAR_DQUOTE) ;
           }
       }
   }
   C.AddByte(CHAR_MORE) ;
   for (pVE = Children() ; pVE ; pVE = pVE->Sibling())
   {
       if (pVE->m_strPretext)
       {
           S = pVE->m_strPretext ;
           if (pE && (pVE->m_flagVE & VE_PT_ACTIVE))
               C << m_pApp->ConvertText(S, pE) ;
           else
               C << S ;
       }
       pVE->Generate(C, pE, nLine) ;
   }
   if (m_strContent)
   {
           S = m_strContent ;
       if (pE && m_flagVE & VE_CT_ACTIVE)
           C << m_pApp->ConvertText(S, pE) ;
       else
           C << S ;
   }
   S = *m_Tag ;
   tagForm = TagLookup(S) ;
   if (tagForm.rule != HTRULE_SINGLE)
   {
       if (nLine != m_Line)
       {
           C.AddByte(CHAR_NL) ;
           for (n = m_Indent ; n ; n--)
               C.AddByte(CHAR_TAB) ;
           nLine = m_Line ;
       }
       C.AddByte(CHAR_LESS) ;
       C.AddByte(CHAR_FWSLASH) ;
       C << m_Tag ;
       C.AddByte(CHAR_MORE) ;
   }
}