writer.h 753 Bytes
#ifndef __HTTP_RESPONSE_WRITER_H__
#define __HTTP_RESPONSE_WRITER_H__

#include "class.h"
#include "http/response.h"
#include "http/message/queue.h"

#define RESPONSE_WRITER_BUF_SIZE	10240


typedef enum e_HttpResponseState {
	HTTP_RESPONSE_GET=0,
	HTTP_RESPONSE_WRITE,
	HTTP_RESPONSE_DONE
} HttpResponseState;

CLASS(HttpResponseWriter) {
	char              pipe[RESPONSE_WRITER_BUF_SIZE];

	size_t            nheader;
	size_t            nbuffer;
	size_t            written;
	size_t            pstart;
	size_t            pend;

	HttpMessageQueue  response_queue;
	HttpResponse      cur_response;

	HttpResponseState state;
};

HttpResponse httpResponseWriterWrite(HttpResponseWriter, int);

#endif // __HTTP_RESPONSE_WRITER_H__

// vim: set ts=4 sw=4: