chore: remove unneeded code; add throughput example
parent
6eab5d616c
commit
195eb9eb48
2
Makefile
2
Makefile
|
@ -81,7 +81,7 @@ $(BUILD_DIR)/$(TEST_DIR)/%.c.o: $(TEST_DIR)/%.c
|
||||||
build-example: $(BINS_EXAMPLE)
|
build-example: $(BINS_EXAMPLE)
|
||||||
|
|
||||||
$(BINS_EXAMPLE): %: %.c.o $(LIB)
|
$(BINS_EXAMPLE): %: %.c.o $(LIB)
|
||||||
$(CC) \
|
$(CC) $(LDFLAGS) \
|
||||||
$^ -o $@
|
$^ -o $@
|
||||||
|
|
||||||
# Example binaries link the resulting library
|
# Example binaries link the resulting library
|
||||||
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
#include "lnm/http/res.h"
|
||||||
|
#include "lnm/log.h"
|
||||||
|
#include "lnm/http/loop.h"
|
||||||
|
#include "lnm/loop.h"
|
||||||
|
|
||||||
|
lnm_err ctx_init(void **c_ctx, void *gctx) {
|
||||||
|
*c_ctx = NULL;
|
||||||
|
|
||||||
|
return lnm_err_ok;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ctx_reset(void *c_ctx) {}
|
||||||
|
void ctx_free(void *c_ctx) {}
|
||||||
|
|
||||||
|
lnm_err data_streamer(uint64_t *written, char *buf,
|
||||||
|
lnm_http_conn *conn, uint64_t offset,
|
||||||
|
uint64_t len) {
|
||||||
|
// Don't do anything, just let the application return random data stored in
|
||||||
|
// the read buffer. The goal is to benchmark the networking pipeline
|
||||||
|
*written = len;
|
||||||
|
|
||||||
|
return lnm_err_ok;
|
||||||
|
}
|
||||||
|
|
||||||
|
lnm_http_step_err step_fn(lnm_http_conn *conn) {
|
||||||
|
lnm_http_loop_ctx *ctx = conn->ctx;
|
||||||
|
uint64_t len = 1 << 30;
|
||||||
|
lnm_http_res_body_set_fn(&ctx->res, data_streamer, len);
|
||||||
|
|
||||||
|
return lnm_http_step_err_done;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
lnm_http_loop *hl;
|
||||||
|
|
||||||
|
lnm_http_loop_init(&hl, NULL, ctx_init,
|
||||||
|
ctx_reset,
|
||||||
|
ctx_free);
|
||||||
|
|
||||||
|
lnm_http_router *router;
|
||||||
|
lnm_http_router_init(&router);
|
||||||
|
|
||||||
|
lnm_http_route *route;
|
||||||
|
lnm_http_router_add(&route, router, lnm_http_method_get, "/");
|
||||||
|
lnm_http_route_step_append(route, step_fn, false);
|
||||||
|
|
||||||
|
lnm_http_loop_router_set(hl, router);
|
||||||
|
|
||||||
|
lnm_log_init_global();
|
||||||
|
lnm_log_register_stdout(lnm_log_level_warning);
|
||||||
|
|
||||||
|
printf("res = %i\n", lnm_http_loop_run(hl, 8080, 1, 0));
|
||||||
|
}
|
|
@ -40,7 +40,6 @@ typedef struct lnm_http_req {
|
||||||
struct {
|
struct {
|
||||||
size_t o;
|
size_t o;
|
||||||
size_t len;
|
size_t len;
|
||||||
regmatch_t groups[LNM_HTTP_MAX_REGEX_GROUPS];
|
|
||||||
} path;
|
} path;
|
||||||
struct {
|
struct {
|
||||||
size_t o;
|
size_t o;
|
||||||
|
|
Loading…
Reference in New Issue