int
main(int argc, char **argv)
{
	dynamic_list_t dl;
	DynamicBuffer *dw = new DynamicBuffer(&dl);

	for (unsigned int i = 0; i < 1000; ++i) {
		dw->append("test", strlen("test"));
	}

	cout << "Added elements, num_elements: " << dw->num_elements()
	     << ", buffer_size: " << dw->buffer_size() << ", real_buffer_size: " << dw->real_buffer_size()
	     << endl;

	DynamicBuffer *dr = new DynamicBuffer(&dl, dw->buffer(), dw->buffer_size());

	cout << "Read buffer opened, num_elements: " << dr->num_elements()
	     << ", buffer_size: " << dr->buffer_size() << ", real_buffer_size: " << dr->real_buffer_size()
	     << endl;

	while (dr->has_next()) {
		char tmp[1024];
		memset(tmp, 0, sizeof(tmp));
		size_t size;
		void * buf = dr->next(&size);
		strncpy(tmp, (const char *)buf, size);
		printf("Read string (%lu bytes): '%s'\n", (unsigned long int)size, tmp);
	}

	delete dw;
	delete dr;
}
Example #2
0
		static void png_write_to_buffer (png_structp png_writer, png_bytep data, png_size_t length)
		{
			DynamicBuffer * buffer = (DynamicBuffer*)png_get_io_ptr(png_writer);

			buffer->append(length, data);
		}