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