writer.h 794 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"

#ifndef TRUE
#define TRUE	((void *)1)
#endif

#ifndef FALSE
#define FALSE	((void *)0)
#endif


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

CLASS(HttpResponseWriter) {
	Cbuf              buffer;
	void *            ourLock;

	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: