40 lines
1.2 KiB
C
40 lines
1.2 KiB
C
#pragma once
|
|
|
|
#include "dynamic_buffer.h"
|
|
|
|
#if defined (__cplusplus)
|
|
extern "C" {
|
|
#endif
|
|
|
|
/// HTTP/1.1 <CODE> <MESSAGE>
|
|
/// <HEADERS>
|
|
typedef struct HttpResponseHeader
|
|
{
|
|
DynamicBuffer buffer;
|
|
} HttpResponseHeader;
|
|
|
|
/// #define HttpResponseHeader_Construct DynamicBuffer_Construct
|
|
/// #define HttpResponseHeader_Destruct DynamicBuffer_Destruct
|
|
#define HttpResponseHeader_Construct(o) do { \
|
|
DynamicBuffer_Construct(&(((HttpResponseHeader *)(o))->buffer)); \
|
|
} while (0)
|
|
|
|
#define HttpResponseHeader_Destruct(o) do { \
|
|
DynamicBuffer_Destruct(&(((HttpResponseHeader *)(o))->buffer)); \
|
|
} while (0)
|
|
|
|
#define HttpResponseHeader_End(o) do {\
|
|
DynamicBuffer_Append(&(((HttpResponseHeader *)(o))->buffer), "\r\n\0", 3); \
|
|
} while (0)
|
|
|
|
#define HttpResponseHeader_AsString(o) (const char *)(DynamicBuffer_Buffer(&((DynamicBuffer *)(o))->buffer))
|
|
#define HttpResponseHeader_Size(o) (DynamicBuffer_Size(&((DynamicBuffer *)(o))->buffer) - 1)
|
|
|
|
void HttpResponseHeader_Start(HttpResponseHeader *o, const char *code, const char *msg);
|
|
void HttpResponseHeader_AppendField(HttpResponseHeader *o, const char *field, const char *value);
|
|
void HttpResponseHeader_EndWithContentLength(HttpResponseHeader *o, size_t size);
|
|
|
|
#if defined (__cplusplus)
|
|
}
|
|
#endif
|