| Return Type | Function name | Arguments |
|---|---|---|
| unsigned int | hzXbuf::Iter::Write | (void*,unsigned int,) |
Declared in file: hzXbuf.h
Defined in file : hzXbuf.cpp
Function Logic:
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 ;
}