KEEL 1.0.0
Minimal C11 HTTP client/server library built on epoll/kqueue/io_uring/poll
Loading...
Searching...
No Matches
parser.h
Go to the documentation of this file.
1#ifndef KEEL_PARSER_H
2#define KEEL_PARSER_H
3
4#include <keel/allocator.h>
5#include <keel/request.h>
6
13
14/* ── Request parser (server-side) ─────────────────────────────────── */
15
17
20 const char *buf, size_t len, size_t *consumed);
21 void (*reset)(KlRequestParser *self);
22 void (*destroy)(KlRequestParser *self);
23};
24
31
35#define kl_parser_llhttp kl_request_parser_llhttp
36
37/* ── Response parser (client-side) ────────────────────────────────── */
38
41
44 const char *buf, size_t len, size_t *consumed);
45 void (*reset)(KlResponseParser *self);
46 void (*destroy)(KlResponseParser *self);
47};
48
50typedef KlResponseParser *(*KlResponseParserFactory)(size_t max_response_size,
51 KlAllocator *alloc);
52
60 KlAllocator *alloc);
61
62#endif
KlRequestParser KlParser
Backward compatibility — existing code can use the old name.
Definition parser.h:33
KlParseResult
Definition parser.h:7
@ KL_PARSE_INCOMPLETE
Definition parser.h:9
@ KL_PARSE_ERROR
Definition parser.h:11
@ KL_PARSE_OK
Definition parser.h:8
@ KL_PARSE_HEADERS_OK
Definition parser.h:10
KlRequestParser * kl_request_parser_llhttp(KlAllocator *alloc)
Create an llhttp-based HTTP/1.1 request parser.
KlResponseParser * kl_response_parser_llhttp(size_t max_response_size, KlAllocator *alloc)
Create an llhttp-based HTTP/1.1 response parser.
Bring-your-own allocator vtable.
Definition allocator.h:12
Definition client.h:63
Definition parser.h:18
void(* reset)(KlRequestParser *self)
Definition parser.h:21
void(* destroy)(KlRequestParser *self)
Definition parser.h:22
KlParseResult(* parse)(KlRequestParser *self, KlRequest *req, const char *buf, size_t len, size_t *consumed)
Definition parser.h:19
Definition request.h:26
Definition parser.h:42
void(* destroy)(KlResponseParser *self)
Definition parser.h:46
KlParseResult(* parse)(KlResponseParser *self, KlClientResponse *resp, const char *buf, size_t len, size_t *consumed)
Definition parser.h:43
void(* reset)(KlResponseParser *self)
Definition parser.h:45