예제 #1
0
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);
	}
}
예제 #2
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);
}
예제 #3
0
파일: os.c 프로젝트: shinpei/konoha-wand
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;
}
예제 #4
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;
}
예제 #5
0
void knh_OutputStream_clear(Ctx *ctx, knh_OutputStream_t *w)
{
	if(knh_OutputStream_isStoringBuffer(w)) {
		knh_Bytes_clear(DP(w)->ba, 0);
	}
}