Logo Pico-Framework A web-first embedded framework for C++
Loading...
Searching...
No Matches
HttpServer.cpp File Reference

HTTP Server implementation with per-client task handling. More...

#include "framework_config.h"
#include "DebugTrace.h"
#include "http/HttpServer.h"
#include <lwip/sockets.h>
#include <lwip/netif.h>
#include <lwip/ip4_addr.h>
#include "lwip/stats.h"
#include "lwip/memp.h"
#include "lwip/tcp.h"
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <FreeRTOS.h>
#include <task.h>
#include <semphr.h>
#include "pico/stdlib.h"
#include "utility/utility.h"
#include "http/url_utils.h"
#include "framework/AppContext.h"
#include "time/TimeManager.h"
#include "network/Tcp.h"
#include "http/JsonResponse.h"
#include "events/EventManager.h"
+ Include dependency graph for HttpServer.cpp:

Go to the source code of this file.

Classes

struct  TaskParams
 Parameters passed to the per-client handler task. More...
 

Variables

static constexpr int MAX_CONCURRENT_CLIENTS = 1
 
SemaphoreHandle_t clientSemaphore
 

Detailed Description

Author
Ian Archbell

Part of the PicoFramework HTTP server. This module handles incoming HTTP requests, spawns a new FreeRTOS task for each accepted client, and processes the requests using a router. It uses the lwIP stack for network communication and FreeRTOS for task management. The server can handle multiple clients concurrently, limited by the MAX_CONCURRENT_CLIENTS.

Version
0.1
Date
2025-03-26
License:\n MIT License

Definition in file HttpServer.cpp.

Variable Documentation

◆ clientSemaphore

SemaphoreHandle_t clientSemaphore

Definition at line 55 of file HttpServer.cpp.

Referenced by HttpServer::start(), and HttpServer::startHandlingClient().

◆ MAX_CONCURRENT_CLIENTS

constexpr int MAX_CONCURRENT_CLIENTS = 1
staticconstexpr

Definition at line 54 of file HttpServer.cpp.

Referenced by HttpServer::start().