writer.h 712 Bytes
#ifndef __HTTP_RESPONSE_WRITER_H__
#define __HTTP_RESPONSE_WRITER_H__

#include <sys/types.h>

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

#define RESPONSE_WRITER_MAX_BUF	131072


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

CLASS(HttpResponseWriter) {
	Cbuf              buffer;

	HttpMessageQueue  response_queue;
	HttpResponse      cur_response;

	size_t            nheader;
	size_t            nbody;
	size_t            written;

	HttpResponseState state;
};

ssize_t httpResponseWriterWrite(HttpResponseWriter, int);

#endif // __HTTP_RESPONSE_WRITER_H__

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