Return TypeFunction nameArguments
unsigned inthzXbuf::Iter::Write(void*,unsigned int,)

Declared in file: hzXbuf.h
Defined in file : hzXbuf.cpp

Function Logic:

0:START 1:maxBytes<0 2:Return -1 3:zp 4:!zp 5:Return -1 6:nOset i 7:nWritten 8:nOset==zp->xize 9:_xblk::Next zp 10:!zp 11:nOset 12:nAvail 13:(nWritten+nAvail)>maxBytes 14:nAvail 15:memcpy nOset i nWritten 16:Return nWritten

Function body:

unsigned int hzXbuf::Iter::Write (void* pBuf, unsigned int maxBytes)
{
   _hzfunc("hzXbuf::Iter::Write") ;
   _xblk*      zp ;
   uchar*      i ;
   uint32_t    nOset ;
   uint32_t    nAvail ;
   uint32_t    nWritten = 0;
   if (maxBytes < 0)
       return -1;
   zp = (_xblk*) m_block ;
   if (!zp)
       return -1;
   nOset = m_nOset ;
   i = (uchar*) pBuf ;
   for (; nWritten < maxBytes ;)
   {
       if (nOset == zp->xize)
       {
           zp = zp->Next() ;
           if (!zp)
               break ;
           nOset = 0;
       }
       nAvail = zp->xize - nOset ;
       if ((nWritten + nAvail) > maxBytes)
           nAvail = maxBytes - nWritten ;
       memcpy(i, zp->m_Data + nOset, nAvail) ;
       nOset += nAvail ;
       i += nAvail ;
       nWritten += nAvail ;
   }
   return nWritten ;
}