#include <stdlib.h> #include <stdarg.h> #include <string.h> #include <sys/types.h> #include "class.h" #include "interface/class.h" #include "interface/http_intro.h" #include "http/request.h" #include "message/helper.c" static void ctor(void * _this, va_list * params) {} static void dtor(void * _this) { HttpRequest this = _this; _free((void **)&(this->uri)); _free((void **)&(this->method)); PARENTCALL(_this, Class, dtor); } static size_t sizeGet(void * _this) { HttpRequest this = _this; size_t size = 0; size += strlen(this->method) + 1; size += strlen(this->uri) + 1; size += strlen(((HttpMessage)this)->version) + 2; return size; } static char * toString(void * _this, char * string) { HttpRequest this = _this; strcpy(string, this->method); string += strlen(string); *string++ = ' '; strcpy(string, this->uri); string += strlen(string); *string++ = ' '; strcpy(string, ((HttpMessage)this)->version); string += strlen(string); *string++ = '\r'; *string++ = '\n'; return string; } INIT_IFACE(Class, ctor, dtor, NULL); INIT_IFACE(HttpIntro, sizeGet, toString); CREATE_CLASS(HttpRequest, HttpMessage, IFACE(Class), IFACE(HttpIntro)); // vim: set ts=4 sw=4: