response.c 997 Bytes
#include <stdlib.h>
#include <stdarg.h>

#include "class.h"
#include "interface/class.h"

#include "http/response.h"


static
void
_free(void ** data)
{
	if (NULL != *data) {
		free(*data);
	}
}

static
void
ctor(void * _this, va_list * params)
{
	char * version;
	char * reason;

	HttpResponse this = _this;

	version      = va_arg(* params, char *);
	this->status = va_arg(* params, unsigned int);
	reason       = va_arg(* params, char *);

	this->version = calloc(1, strlen(version)+1);
	strcpy(this->version, version);

	this->reason  = calloc(1, strlen(reason)+1);
	strcpy(this->reason, reason);
}

static
void
dtor(void * _this)
{
	HttpResponse this = _this;
	int          i;

	_free((void **)&(this->version));
	_free((void **)&(this->reason));

	for (i=0; i<128; i++) {
		if (NULL == (this->header)[i]) break;
		delete(&(this->header)[i]);
	}

	_free((void **)&(this->body));
} 

INIT_IFACE(Class, ctor, dtor, NULL);
CREATE_CLASS(HttpResponse, NULL, IFACE(Class));

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