Hi all, I'm working on a protocol plugin and I would like to marshall a response directly into a TSIOBuffer. AFAICT the right way to do this is roughly:
TSIOBuffer buffer; TSIOBufferBlock blk; char * ptr; size_t avail; size_t total; blk = TSIOBufferStart(buffer); do { ptr = TSIOBufferBlockWriteStart(blk, &avail); // (1) marshall up to avail into ptr … total += avail; blk = TSIOBufferBlockNext(blk); } while (!finished); // make the written data visible TSIOBufferProduce(buffer, total); AFAICT, TSIOBufferProduce() assumes that all the intermediate buffer blocks are completely filled. This means that if the space available at (1) is some inconvenient size, then I might have to handle splitting a uint32_t across the buffer block boundary. Is there a way to set the buffer block's end pointer so that I can build a buffer containing partially filled blocks? thanks, James