#include <HttpServer.h>

Inheritance diagram for HttpServer:
Collaboration diagram for HttpServer:

Public Member Functions

 HttpServer ()
 
 HttpServer (const HttpServerSettings &settings)
 
void configure (const HttpServerSettings &settings)
 Allows changing the server configuration. More...
 
void setBodyParser (const String &contentType, HttpBodyParserDelegate parser)
 Allows content-type specific parsing of the body based on content-type. More...
 
void setBodyParser (MimeType mimeType, HttpBodyParserDelegate parser)
 Allows content-type specific parsing of the body based on content-type. More...
 
- Public Member Functions inherited from TcpServer
 TcpServer ()
 
 TcpServer (TcpClientConnectDelegate onClientHandler, TcpClientDataDelegate clientReceiveDataHandler, TcpClientCompleteDelegate clientCompleteHandler)
 
 TcpServer (TcpClientDataDelegate clientReceiveDataHandler, TcpClientCompleteDelegate clientCompleteHandler)
 
 TcpServer (TcpClientDataDelegate clientReceiveDataHandler)
 
void setClientReceiveHandler (TcpClientDataDelegate clientReceiveDataHandler)
 
 ~TcpServer ()
 
virtual bool listen (int port, bool useSsl=false)
 
void setKeepAlive (uint16_t seconds)
 
void shutdown ()
 
const Vector< TcpConnection * > & getConnections () const
 
- Public Member Functions inherited from TcpConnection
 TcpConnection (bool autoDestruct)
 
 TcpConnection (tcp_pcb *connection, bool autoDestruct)
 
virtual ~TcpConnection ()
 
virtual bool connect (const String &server, int port, bool useSsl=false)
 
virtual bool connect (IpAddress addr, uint16_t port, bool useSsl=false)
 
virtual void close ()
 
void setAutoSelfDestruct (bool state)
 
int writeString (const char *data, uint8_t apiflags=TCP_WRITE_FLAG_COPY)
 Writes string data directly to the TCP buffer. More...
 
int writeString (const String &data, uint8_t apiflags=TCP_WRITE_FLAG_COPY)
 Writes string data directly to the TCP buffer. More...
 
virtual int write (const char *data, int len, uint8_t apiflags=TCP_WRITE_FLAG_COPY)
 Base write operation. More...
 
int write (IDataSourceStream *stream)
 Writes stream data directly to the TCP buffer. More...
 
uint16_t getAvailableWriteSize ()
 
void flush ()
 
void setTimeOut (uint16_t waitTimeOut)
 
IpAddress getRemoteIp () const
 
uint16_t getRemotePort () const
 
void setDestroyedDelegate (TcpConnectionDestroyedDelegate destroyedDelegate)
 Sets a callback to be called when the object instance is destroyed. More...
 
void setSslInitHandler (Ssl::Session::InitDelegate handler)
 Set the SSL session initialisation callback. More...
 
bool setSslConnection (Ssl::Connection *connection)
 
Ssl::SessiongetSsl ()
 Get a pointer to the current SSL session object. More...
 
- Public Member Functions inherited from IpConnection
bool joinMulticastGroup (IpAddress localIp, IpAddress multicastIp)
 Uses IGMP to add a local network interface to multicast group. More...
 
bool joinMulticastGroup (IpAddress multicastIp)
 Uses IGMP to add all local network interfaces to multicast group. More...
 
bool leaveMulticastGroup (IpAddress localIp, IpAddress multicastIp)
 Uses IGMP to remove a local network interface from multicast group. More...
 
bool leaveMulticastGroup (IpAddress multicastIp)
 Uses IGMP to remove all local network interfaces from multicast group. More...
 

Public Attributes

HttpResourceTree paths
 Maps paths to resources which deal with incoming requests. More...
 
- Public Attributes inherited from TcpServer
uint16_t activeClients = 0
 

Protected Member Functions

TcpConnectioncreateClient (tcp_pcb *clientTcp) override
 
- Protected Member Functions inherited from TcpServer
virtual err_t onAccept (tcp_pcb *clientTcp, err_t err)
 
virtual void onClient (TcpClient *client)
 
virtual bool onClientReceive (TcpClient &client, char *data, int size)
 
virtual void onClientComplete (TcpClient &client, bool successful)
 
virtual void onClientDestroy (TcpConnection &connection)
 
- Protected Member Functions inherited from TcpConnection
void initialize (tcp_pcb *pcb)
 
bool internalConnect (IpAddress addr, uint16_t port)
 
bool sslCreateSession ()
 
virtual void sslInitSession (Ssl::Session &session)
 Override in inherited classes to perform custom session initialisation. More...
 
virtual err_t onConnected (err_t err)
 
virtual err_t onReceive (pbuf *buf)
 
virtual err_t onSent (uint16_t len)
 
virtual err_t onPoll ()
 
virtual void onError (err_t err)
 
virtual void onReadyToSendData (TcpConnectionEvent sourceEvent)
 
virtual void onClosed ()
 Gets called when there is/was a tcp connection, the latter does not have to be established, that is closed due to error or normal disconnect. More...
 
void trySend (TcpConnectionEvent event)
 
err_t internalOnConnected (err_t err)
 
err_t internalOnReceive (pbuf *p, err_t err)
 
err_t internalOnSent (uint16_t len)
 
err_t internalOnPoll ()
 
void internalOnError (err_t err)
 
void internalOnDnsResponse (const char *name, LWIP_IP_ADDR_T *ipaddr, int port)
 

Additional Inherited Members

- Protected Attributes inherited from TcpServer
size_t minHeapSize = 16384
 
uint16_t maxConnections = 0
 By default, don't limit connection count. More...
 
bool active = true
 
Vector< TcpConnection * > connections
 
- Protected Attributes inherited from TcpConnection
tcp_pcb * tcp = nullptr
 
uint16_t sleep = 0
 
uint16_t timeOut = USHRT_MAX
 By default a TCP connection does not have a time out. More...
 
bool canSend = true
 
bool autoSelfDestruct = true
 
Ssl::Sessionssl = nullptr
 
Ssl::Session::InitDelegate sslInit
 
bool useSsl = false
 

Constructor & Destructor Documentation

◆ HttpServer() [1/2]

HttpServer::HttpServer ( )
inline

◆ HttpServer() [2/2]

HttpServer::HttpServer ( const HttpServerSettings settings)
inline

Member Function Documentation

◆ configure()

void HttpServer::configure ( const HttpServerSettings settings)

Allows changing the server configuration.

◆ createClient()

TcpConnection* HttpServer::createClient ( tcp_pcb *  clientTcp)
overrideprotectedvirtual

Reimplemented from TcpServer.

◆ setBodyParser() [1/2]

void HttpServer::setBodyParser ( const String contentType,
HttpBodyParserDelegate  parser 
)
inline

Allows content-type specific parsing of the body based on content-type.

Parameters
contentTypeCan be full content-type like 'application/json', or 'application/*' or '*'. If there is exact match for the content-type wildcard content-types will not be used. There can be only one catch-all '*' body parser and that will be the last registered
parser

◆ setBodyParser() [2/2]

void HttpServer::setBodyParser ( MimeType  mimeType,
HttpBodyParserDelegate  parser 
)
inline

Allows content-type specific parsing of the body based on content-type.

Parameters
mimeType
parser

Member Data Documentation

◆ paths

HttpResourceTree HttpServer::paths

Maps paths to resources which deal with incoming requests.


The documentation for this class was generated from the following file: