KNHAPI(void) knh_OutputStream_flush(Ctx *ctx, knh_OutputStream_t *w) { if(!knh_OutputStream_isStoringBuffer(w)) { knh_Bytes_t *ba = DP(w)->ba; SP(w)->dspi->fwrite(ctx, DP(w)->fd, (ba)->bu.text, (ba)->bu.len); knh_Bytes_clear(ba, 0); } }
void knh_ResultSet_initData(Ctx *ctx, knh_ResultSet_t *rs) { size_t i = 0; for(i = 0; i < DP(rs)->column_size; i++) { DP(rs)->column[i].ctype = 0; DP(rs)->column[i].start = 0; DP(rs)->column[i].len = 0; } knh_Bytes_clear(DP(rs)->databuf, 0); }
void knh_path_close(CTX ctx, knh_path_t *ph) { knh_Bytes_t *ba = ctx->bufa; KNH_ASSERT(ph->pstart < ba->bu.len); //DBG_P("ph='%s', size=%d", P_text(ph), ph->plen); knh_Bytes_clear(ba, ph->pstart); ph->pstart = 0; ph->pbody = 0; ph->plen = 0; }
KNHAPI(void) knh_OutputStream_write(Ctx *ctx, knh_OutputStream_t *w, knh_bytes_t buf) { knh_Bytes_t *ba = DP(w)->ba; DBG_ASSERT(IS_Bytes(ba)); knh_Bytes_write(ctx, ba, buf); if(!knh_OutputStream_isStoringBuffer(w) && BA_size(ba) > SP(w)->dspi->bufsiz) { SP(w)->dspi->fwrite(ctx, DP(w)->fd, (ba)->bu.text, (ba)->bu.len); knh_Bytes_clear(ba, 0); } DP(w)->size += buf.len; }
void knh_OutputStream_clear(Ctx *ctx, knh_OutputStream_t *w) { if(knh_OutputStream_isStoringBuffer(w)) { knh_Bytes_clear(DP(w)->ba, 0); } }