| Return Type | Function name | Arguments |
|---|---|---|
| unsigned int | hzChain::Iter::Write | (void*,unsigned int,) |
Declared in file: hzChain.h
Defined in file : hzChain.cpp
Function Logic:
Function body:
unsigned int hzChain::Iter::Write (void* pBuf, unsigned int maxBytes)
{
_hzfunc("hzChain::Iter::Write") ;
_zblk* zp ;
char* i ;
uint32_t nOset ;
uint32_t nAvail ;
uint32_t nWritten = 0;
if (maxBytes < 0)
return -1;
zp = (_zblk*) m_block ;
if (!zp)
return -1;
nOset = m_nOset ;
i = (char*) pBuf ;
for (; nWritten < maxBytes ;)
{
if (nOset == zp->m_nUsage)
{
zp = zp->Next() ;
if (!zp)
break ;
nOset = 0;
}
nAvail = zp->m_nUsage - nOset ;
if ((nWritten + nAvail) > maxBytes)
nAvail = maxBytes - nWritten ;
memcpy(i, zp->m_Data + nOset, nAvail) ;
nOset += nAvail ;
i += nAvail ;
nWritten += nAvail ;
}
return nWritten ;
}