# ServerConnection

<a id="serverconnection-1"></a>

# ServerConnection

```cpp
#include <icy/http/server.h>

class ServerConnection
```

[Defined in src/http/include/icy/http/server.h:60](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L60)

> **Inherits:** [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1)

HTTP server connection.

## List of all members

| Name | Kind | Owner |
|------|------|-------|
| [`Payload`](#payload-1) | `variable` | Declared here |
| [`Close`](#close-28) | `variable` | Declared here |
| [`ServerConnection`](#serverconnection-2) | `function` | Declared here |
| [`~ServerConnection`](#serverconnection-3) | `function` | Declared here |
| [`server`](#server-6) | `function` | Declared here |
| [`state`](#state-6) | `function` | Declared here |
| [`mode`](#mode-1) | `function` | Declared here |
| [`upgraded`](#upgraded) | `function` | Declared here |
| [`streaming`](#streaming) | `function` | Declared here |
| [`idleTimeoutEnabled`](#idletimeoutenabled) | `function` | Declared here |
| [`reusableForPool`](#reusableforpool) | `function` | Declared here |
| [`markActive`](#markactive-1) | `function` | Declared here |
| [`reset`](#reset-21) | `function` | Declared here |
| [`touch`](#touch) | `function` | Declared here |
| [`idleSeconds`](#idleseconds) | `function` | Declared here |
| [`beginStreaming`](#beginstreaming-1) | `function` | Declared here |
| [`endStreaming`](#endstreaming-1) | `function` | Declared here |
| [`endStreaming`](#endstreaming-2) | `function` | Declared here |
| [`sendHeader`](#sendheader-1) | `function` | Declared here |
| [`close`](#close-29) | `function` | Declared here |
| [`_server`](#_server) | `variable` | Declared here |
| [`_responder`](#_responder) | `variable` | Declared here |
| [`_lastActivity`](#_lastactivity) | `variable` | Declared here |
| [`_state`](#_state-3) | `variable` | Declared here |
| [`_mode`](#_mode-2) | `variable` | Declared here |
| [`onHeaders`](#onheaders-2) | `function` | Declared here |
| [`onPayload`](#onpayload-2) | `function` | Declared here |
| [`onComplete`](#oncomplete-2) | `function` | Declared here |
| [`onClose`](#onclose-5) | `function` | Declared here |
| [`incomingHeader`](#incomingheader-2) | `function` | Declared here |
| [`outgoingHeader`](#outgoingheader-2) | `function` | Declared here |
| [`setState`](#setstate-2) | `function` | Declared here |
| [`requestHasBody`](#requesthasbody) | `function` | Declared here |
| [`responseLooksStreaming`](#responselooksstreaming) | `function` | Declared here |
| [`Ptr`](#ptr-18) | `typedef` | Declared here |
| [`ConnectionStream`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connectionstream) | `friend` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`ConnectionAdapter`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connectionadapter) | `friend` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-2) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`~Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-3) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`onHeaders`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#onheaders-1) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`onPayload`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#onpayload-1) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`onComplete`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#oncomplete-1) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`onClose`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#onclose-4) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`send`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#send-12) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`sendOwned`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#sendowned-10) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`sendHeader`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#sendheader) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`close`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#close-27) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`markActive`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#markactive) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`beginStreaming`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#beginstreaming) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`endStreaming`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#endstreaming) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`closed`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#closed-6) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`error`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#error-17) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`headerAutoSendEnabled`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#headerautosendenabled) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`setHeaderAutoSendEnabled`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#setheaderautosendenabled) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`replaceAdapter`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#replaceadapter) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`replaceAdapter`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#replaceadapter-1) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`secure`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#secure) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`socket`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#socket-6) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`adapter`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#adapter) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`request`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#request-5) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`response`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#response-2) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`incomingHeader`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#incomingheader-1) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`outgoingHeader`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#outgoingheader-1) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`_socket`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#_socket-1) | `variable` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`_adapter`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#_adapter) | `variable` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`_request`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#_request-1) | `variable` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`_response`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#_response-1) | `variable` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`_error`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#_error-4) | `variable` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`_closed`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#_closed) | `variable` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`_shouldSendHeader`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#_shouldsendheader) | `variable` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`setError`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#seterror-5) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`onSocketConnect`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#onsocketconnect-3) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`onSocketRecv`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#onsocketrecv-3) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`onSocketError`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#onsocketerror-3) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`onSocketClose`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#onsocketclose-2) | `function` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`Ptr`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#ptr-17) | `typedef` | Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) |
| [`priority`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#priority-3) | `variable` | Inherited from [`SocketAdapter`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter) |
| [`SocketAdapter`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter-1) | `function` | Inherited from [`SocketAdapter`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter) |
| [`~SocketAdapter`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter-2) | `function` | Inherited from [`SocketAdapter`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter) |
| [`send`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#send-1) | `function` | Inherited from [`SocketAdapter`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter) |
| [`send`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#send-2) | `function` | Inherited from [`SocketAdapter`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter) |
| [`sendOwned`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#sendowned-2) | `function` | Inherited from [`SocketAdapter`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter) |
| [`sendOwned`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#sendowned-3) | `function` | Inherited from [`SocketAdapter`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter) |
| [`sendPacket`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#sendpacket) | `function` | Inherited from [`SocketAdapter`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter) |
| [`sendPacket`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#sendpacket-1) | `function` | Inherited from [`SocketAdapter`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter) |
| [`sendPacket`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#sendpacket-2) | `function` | Inherited from [`SocketAdapter`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter) |
| [`setSender`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#setsender) | `function` | Inherited from [`SocketAdapter`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter) |
| [`sender`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#sender) | `function` | Inherited from [`SocketAdapter`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter) |
| [`addReceiver`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#addreceiver) | `function` | Inherited from [`SocketAdapter`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter) |
| [`removeReceiver`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#removereceiver) | `function` | Inherited from [`SocketAdapter`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter) |
| [`hasReceiver`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#hasreceiver) | `function` | Inherited from [`SocketAdapter`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter) |
| [`receivers`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#receivers) | `function` | Inherited from [`SocketAdapter`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter) |
| [`onSocketConnect`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#onsocketconnect) | `function` | Inherited from [`SocketAdapter`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter) |
| [`onSocketRecv`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#onsocketrecv-1) | `function` | Inherited from [`SocketAdapter`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter) |
| [`onSocketError`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#onsocketerror) | `function` | Inherited from [`SocketAdapter`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter) |
| [`onSocketClose`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#onsocketclose) | `function` | Inherited from [`SocketAdapter`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter) |
| [`_sender`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#_sender) | `variable` | Inherited from [`SocketAdapter`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter) |
| [`_receivers`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#_receivers) | `variable` | Inherited from [`SocketAdapter`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter) |
| [`_dirty`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#_dirty) | `variable` | Inherited from [`SocketAdapter`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter) |
| [`_dispatchDepth`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#_dispatchdepth) | `variable` | Inherited from [`SocketAdapter`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter) |
| [`cleanupReceivers`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#cleanupreceivers) | `function` | Inherited from [`SocketAdapter`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter) |

## Inherited from [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1)

| Kind | Name | Description |
|------|------|-------------|
| `friend` | [`ConnectionStream`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connectionstream)  |  |
| `friend` | [`ConnectionAdapter`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connectionadapter)  |  |
| `function` | [`Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-2)  | Creates a [Connection](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) using the given TCP socket. |
| `function` | [`~Connection`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-3) `virtual` `noexcept` |  |
| `function` | [`onHeaders`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#onheaders-1) `virtual` | Called when the incoming HTTP headers have been fully parsed. |
| `function` | [`onPayload`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#onpayload-1) `virtual` | Called for each chunk of incoming body data after headers are complete. |
| `function` | [`onComplete`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#oncomplete-1) `virtual` | Called when the incoming HTTP message is fully received. |
| `function` | [`onClose`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#onclose-4) `virtual` | Called when the connection is closed. |
| `function` | [`send`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#send-12) `virtual` `override` | Send raw data to the peer. |
| `function` | [`sendOwned`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#sendowned-10) `virtual` `override` | Send an owned payload buffer to the peer. |
| `function` | [`sendHeader`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#sendheader) `virtual` | Send the outdoing HTTP header. |
| `function` | [`close`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#close-27) `virtual` | Close the connection and schedule the object for deferred deletion. |
| `function` | [`markActive`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#markactive) `virtual` `inline` | Marks the connection as active. [Server](https://auscaster.com/icey/docs/api-reference/icy-http-Server.md#server) connections override this to refresh the idle timer. |
| `function` | [`beginStreaming`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#beginstreaming) `virtual` `inline` | Explicitly enter long-lived streaming mode. Base connections ignore this; server connections use it to disable keep-alive idle reaping while a response stream is active. |
| `function` | [`endStreaming`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#endstreaming) `virtual` `inline` | Exit long-lived streaming mode. |
| `function` | [`closed`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#closed-6) `const` | Return true if the connection is closed. |
| `function` | [`error`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#error-17) `const` | Return the error object if any. |
| `function` | [`headerAutoSendEnabled`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#headerautosendenabled) `const` | Return true if headers should be automatically sent. |
| `function` | [`setHeaderAutoSendEnabled`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#setheaderautosendenabled)  | Enable or disable automatic header emission for the next outgoing send path. |
| `function` | [`replaceAdapter`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#replaceadapter) `virtual` | Assign the new [ConnectionAdapter](https://auscaster.com/icey/docs/api-reference/icy-http-ConnectionAdapter.md#connectionadapter-1) and setup the chain. The flow is: [Connection](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#connection-1) <-> [ConnectionAdapter](https://auscaster.com/icey/docs/api-reference/icy-http-ConnectionAdapter.md#connectionadapter-1) <-> Socket. Takes ownership of the adapter (deferred deletion via uv loop). |
| `function` | [`replaceAdapter`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#replaceadapter-1) `virtual` | Overload for nullptr (used in destructor to clear adapter). |
| `function` | [`secure`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#secure) `const` | Return true if the connection uses TLS/SSL. |
| `function` | [`socket`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#socket-6)  | Return the underlying socket pointer. |
| `function` | [`adapter`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#adapter) `const` | Return the underlying adapter pointer. |
| `function` | [`request`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#request-5)  | The HTTP request headers. |
| `function` | [`response`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#response-2)  | The HTTP response headers. |
| `function` | [`incomingHeader`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#incomingheader-1) `virtual` | Returns the incoming HTTP message header (request or response depending on role). |
| `function` | [`outgoingHeader`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#outgoingheader-1) `virtual` | Returns the outgoing HTTP message header (request or response depending on role). |
| `variable` | [`_socket`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#_socket-1)  |  |
| `variable` | [`_adapter`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#_adapter)  |  |
| `variable` | [`_request`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#_request-1)  |  |
| `variable` | [`_response`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#_response-1)  |  |
| `variable` | [`_error`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#_error-4)  |  |
| `variable` | [`_closed`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#_closed)  |  |
| `variable` | [`_shouldSendHeader`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#_shouldsendheader)  |  |
| `function` | [`setError`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#seterror-5) `virtual` | Set the internal error. Note: Setting the error does not [`close()`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#close-27) the connection. |
| `function` | [`onSocketConnect`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#onsocketconnect-3) `virtual` `override` | [net::SocketAdapter](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter) interface |
| `function` | [`onSocketRecv`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#onsocketrecv-3) `virtual` `override` | Called when data is received from the socket. Forwards the event to all registered receivers in priority order. |
| `function` | [`onSocketError`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#onsocketerror-3) `virtual` `override` | Called when the socket encounters an error. Forwards the event to all registered receivers in priority order. |
| `function` | [`onSocketClose`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#onsocketclose-2) `virtual` `override` | Called when the socket is closed. Forwards the event to all registered receivers in priority order. |
| `typedef` | [`Ptr`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#ptr-17)  |  |

## Inherited from [`SocketAdapter`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter)

| Kind | Name | Description |
|------|------|-------------|
| `variable` | [`priority`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#priority-3)  | The priority of this adapter for STL sort operations. |
| `function` | [`SocketAdapter`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter-1)  | Creates the [SocketAdapter](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter). |
| `function` | [`~SocketAdapter`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter-2) `virtual` `noexcept` | Destroys the [SocketAdapter](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter). |
| `function` | [`send`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#send-1) `virtual` | Sends the given data buffer to the connected peer. Returns the number of bytes sent or -1 on error. No exception will be thrown. For TCP sockets the given peer address must match the connected peer address. |
| `function` | [`send`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#send-2) `virtual` |  |
| `function` | [`sendOwned`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#sendowned-2) `virtual` | Sends an owned payload buffer to the connected peer. |
| `function` | [`sendOwned`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#sendowned-3) `virtual` |  |
| `function` | [`sendPacket`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#sendpacket) `virtual` | Sends the given packet to the connected peer. Returns the number of bytes sent or -1 on error. No exception will be thrown. For TCP sockets the given peer address must match the connected peer address. |
| `function` | [`sendPacket`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#sendpacket-1) `virtual` |  |
| `function` | [`sendPacket`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#sendpacket-2) `virtual` | Sends the given packet to the connected peer. This method provides delegate compatibility, and unlike other send methods throws an exception if the underlying socket is closed. |
| `function` | [`setSender`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#setsender) `virtual` | Sets the pointer to the outgoing data adapter. Send methods proxy data to this adapter by default. |
| `function` | [`sender`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#sender)  | Returns the output [SocketAdapter](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter) pointer. |
| `function` | [`addReceiver`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#addreceiver) `virtual` | Sets the pointer to the incoming data adapter. Events proxy data to this adapter by default. |
| `function` | [`removeReceiver`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#removereceiver) `virtual` | Remove the given receiver. |
| `function` | [`hasReceiver`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#hasreceiver) `virtual` | Returns true if the given receiver is connected. |
| `function` | [`receivers`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#receivers)  | Returns all currently registered input [SocketAdapter](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#socketadapter) pointers. Dead (removed) entries are excluded from the returned list. |
| `function` | [`onSocketConnect`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#onsocketconnect) `virtual` | Called when the socket establishes a connection. Forwards the event to all registered receivers in priority order. Override to intercept before the application sees the event. |
| `function` | [`onSocketRecv`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#onsocketrecv-1) `virtual` | Called when data is received from the socket. Forwards the event to all registered receivers in priority order. |
| `function` | [`onSocketError`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#onsocketerror) `virtual` | Called when the socket encounters an error. Forwards the event to all registered receivers in priority order. |
| `function` | [`onSocketClose`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#onsocketclose) `virtual` | Called when the socket is closed. Forwards the event to all registered receivers in priority order. |
| `variable` | [`_sender`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#_sender)  |  |
| `variable` | [`_receivers`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#_receivers)  |  |
| `variable` | [`_dirty`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#_dirty)  |  |
| `variable` | [`_dispatchDepth`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#_dispatchdepth)  |  |
| `function` | [`cleanupReceivers`](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md#cleanupreceivers) `virtual` |  |

## Public Attributes

| Return | Name | Description |
|--------|------|-------------|
| [`LocalSignal`](https://auscaster.com/icey/docs/api-reference/base.md#localsignal)< void([`ServerConnection`](#serverconnection-1) &, const [`MutableBuffer`](https://auscaster.com/icey/docs/api-reference/icy-MutableBuffer.md#mutablebuffer-6) &)> | [`Payload`](#payload-1)  | Signals when raw data is received. |
| [`LocalSignal`](https://auscaster.com/icey/docs/api-reference/base.md#localsignal)< void([`ServerConnection`](#serverconnection-1) &)> | [`Close`](#close-28)  | Signals when the connection is closed. |

---

<a id="payload-1"></a>

### Payload

```cpp
LocalSignal< void(ServerConnection &, const MutableBuffer &)> Payload
```

Type: [`LocalSignal`](https://auscaster.com/icey/docs/api-reference/base.md#localsignal)< void([`ServerConnection`](#serverconnection-1) &, const [`MutableBuffer`](https://auscaster.com/icey/docs/api-reference/icy-MutableBuffer.md#mutablebuffer-6) &)>

[Defined in src/http/include/icy/http/server.h:119](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L119)

Signals when raw data is received.

---

<a id="close-28"></a>

### Close

```cpp
LocalSignal< void(ServerConnection &)> Close
```

Type: [`LocalSignal`](https://auscaster.com/icey/docs/api-reference/base.md#localsignal)< void([`ServerConnection`](#serverconnection-1) &)>

[Defined in src/http/include/icy/http/server.h:120](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L120)

Signals when the connection is closed.

## Public Methods

| Return | Name | Description |
|--------|------|-------------|
|  | [`ServerConnection`](#serverconnection-2)  | Creates a [ServerConnection](#serverconnection-1) attached to the given server and socket. |
|  | [`~ServerConnection`](#serverconnection-3) `virtual` |  |
| [`Server`](https://auscaster.com/icey/docs/api-reference/icy-http-Server.md#server) & | [`server`](#server-6)  | Returns the owning [Server](https://auscaster.com/icey/docs/api-reference/icy-http-Server.md#server) instance. |
| [`ServerConnectionState`](https://auscaster.com/icey/docs/api-reference/icy-http.md#serverconnectionstate) | [`state`](#state-6) `const` `inline` | Returns the current server-side connection state. |
| [`ServerConnectionMode`](https://auscaster.com/icey/docs/api-reference/icy-http.md#serverconnectionmode) | [`mode`](#mode-1) `const` `inline` | Returns the current transport mode. |
| `bool` | [`upgraded`](#upgraded) `const` `inline` | Returns true if the connection has been upgraded (e.g. to WebSocket). |
| `bool` | [`streaming`](#streaming) `const` `inline` | Returns true if the connection is in long-lived streaming mode. |
| `bool` | [`idleTimeoutEnabled`](#idletimeoutenabled) `const` | Returns true if the server idle timer is allowed to reap this connection. |
| `bool` | [`reusableForPool`](#reusableforpool) `const` | Returns true if the closed connection can be returned to the reuse pool. |
| `void` | [`markActive`](#markactive-1) `virtual` `inline` `override` | Refresh the idle timer. |
| `void` | [`reset`](#reset-21)  | Reset this connection for reuse with a new socket. Called by the connection pool to avoid allocating a new [ServerConnection](#serverconnection-1). |
| `void` | [`touch`](#touch) `inline` | Update the last activity timestamp. |
| `double` | [`idleSeconds`](#idleseconds) `const` `inline` | Return seconds since last activity. |
| `void` | [`beginStreaming`](#beginstreaming-1) `virtual` `override` | Explicitly mark the response as long-lived streaming. Streaming connections are excluded from the keep-alive idle reaper. |
| `void` | [`endStreaming`](#endstreaming-1) `virtual` `override` | Exit streaming mode and return to the given HTTP state. |
| `void` | [`endStreaming`](#endstreaming-2)  |  |
| `ssize_t` | [`sendHeader`](#sendheader-1) `virtual` `override` | Send the outgoing HTTP header. |
| `void` | [`close`](#close-29) `virtual` `override` | Close the connection with an explicit terminal state transition. |

---

<a id="serverconnection-2"></a>

### ServerConnection

```cpp
ServerConnection(Server & server, net::TCPSocket::Ptr socket)
```

[Defined in src/http/include/icy/http/server.h:68](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L68)

Creates a [ServerConnection](#serverconnection-1) attached to the given server and socket.

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `server` | [`Server`](https://auscaster.com/icey/docs/api-reference/icy-http-Server.md#server) & | The owning HTTP server instance. |
| `socket` | [`net::TCPSocket::Ptr`](https://auscaster.com/icey/docs/api-reference/icy-net-TCPSocket.md#ptr-14) | The accepted TCP socket for this connection. |

---

<a id="serverconnection-3"></a>

### ~ServerConnection

`virtual`

```cpp
virtual ~ServerConnection()
```

[Defined in src/http/include/icy/http/server.h:69](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L69)

---

<a id="server-6"></a>

### server

```cpp
Server & server()
```

[Defined in src/http/include/icy/http/server.h:72](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L72)

Returns the owning [Server](https://auscaster.com/icey/docs/api-reference/icy-http-Server.md#server) instance.

---

<a id="state-6"></a>

### state

`const` `inline`

```cpp
inline ServerConnectionState state() const
```

[Defined in src/http/include/icy/http/server.h:75](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L75)

Returns the current server-side connection state.

---

<a id="mode-1"></a>

### mode

`const` `inline`

```cpp
inline ServerConnectionMode mode() const
```

[Defined in src/http/include/icy/http/server.h:78](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L78)

Returns the current transport mode.

---

<a id="upgraded"></a>

### upgraded

`const` `inline`

```cpp
inline bool upgraded() const
```

[Defined in src/http/include/icy/http/server.h:81](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L81)

Returns true if the connection has been upgraded (e.g. to WebSocket).

---

<a id="streaming"></a>

### streaming

`const` `inline`

```cpp
inline bool streaming() const
```

[Defined in src/http/include/icy/http/server.h:84](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L84)

Returns true if the connection is in long-lived streaming mode.

---

<a id="idletimeoutenabled"></a>

### idleTimeoutEnabled

`const`

```cpp
bool idleTimeoutEnabled() const
```

[Defined in src/http/include/icy/http/server.h:87](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L87)

Returns true if the server idle timer is allowed to reap this connection.

---

<a id="reusableforpool"></a>

### reusableForPool

`const`

```cpp
bool reusableForPool() const
```

[Defined in src/http/include/icy/http/server.h:90](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L90)

Returns true if the closed connection can be returned to the reuse pool.

---

<a id="markactive-1"></a>

### markActive

`virtual` `inline` `override`

```cpp
virtual inline void markActive() override
```

[Defined in src/http/include/icy/http/server.h:93](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L93)

Refresh the idle timer.

#### Reimplements

- [`Connection::markActive`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#markactive)

---

<a id="reset-21"></a>

### reset

```cpp
void reset(net::TCPSocket::Ptr socket)
```

[Defined in src/http/include/icy/http/server.h:97](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L97)

Reset this connection for reuse with a new socket. Called by the connection pool to avoid allocating a new [ServerConnection](#serverconnection-1).

---

<a id="touch"></a>

### touch

`inline`

```cpp
inline void touch()
```

[Defined in src/http/include/icy/http/server.h:100](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L100)

Update the last activity timestamp.

---

<a id="idleseconds"></a>

### idleSeconds

`const` `inline`

```cpp
inline double idleSeconds() const
```

[Defined in src/http/include/icy/http/server.h:103](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L103)

Return seconds since last activity.

---

<a id="beginstreaming-1"></a>

### beginStreaming

`virtual` `override`

```cpp
virtual void beginStreaming() override
```

[Defined in src/http/include/icy/http/server.h:107](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L107)

Explicitly mark the response as long-lived streaming. Streaming connections are excluded from the keep-alive idle reaper.

#### Reimplements

- [`Connection::beginStreaming`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#beginstreaming)

---

<a id="endstreaming-1"></a>

### endStreaming

`virtual` `override`

```cpp
virtual void endStreaming() override
```

[Defined in src/http/include/icy/http/server.h:110](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L110)

Exit streaming mode and return to the given HTTP state.

#### Reimplements

- [`Connection::endStreaming`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#endstreaming)

---

<a id="endstreaming-2"></a>

### endStreaming

```cpp
void endStreaming(ServerConnectionState nextState)
```

[Defined in src/http/include/icy/http/server.h:111](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L111)

---

<a id="sendheader-1"></a>

### sendHeader

`virtual` `override`

```cpp
virtual ssize_t sendHeader() override
```

[Defined in src/http/include/icy/http/server.h:114](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L114)

Send the outgoing HTTP header.

#### Reimplements

- [`Connection::sendHeader`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#sendheader)

---

<a id="close-29"></a>

### close

`virtual` `override`

```cpp
virtual void close() override
```

[Defined in src/http/include/icy/http/server.h:117](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L117)

Close the connection with an explicit terminal state transition.

#### Reimplements

- [`Connection::close`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#close-27)

## Protected Attributes

| Return | Name | Description |
|--------|------|-------------|
| [`Server`](https://auscaster.com/icey/docs/api-reference/icy-http-Server.md#server) & | [`_server`](#_server)  |  |
| std::unique_ptr< [`ServerResponder`](https://auscaster.com/icey/docs/api-reference/icy-http-ServerResponder.md#serverresponder) > | [`_responder`](#_responder)  |  |
| `std::time_t` | [`_lastActivity`](#_lastactivity)  |  |
| [`ServerConnectionState`](https://auscaster.com/icey/docs/api-reference/icy-http.md#serverconnectionstate) | [`_state`](#_state-3)  |  |
| [`ServerConnectionMode`](https://auscaster.com/icey/docs/api-reference/icy-http.md#serverconnectionmode) | [`_mode`](#_mode-2)  |  |

---

<a id="_server"></a>

### _server

```cpp
Server & _server
```

Type: [`Server`](https://auscaster.com/icey/docs/api-reference/icy-http-Server.md#server) &

[Defined in src/http/include/icy/http/server.h:136](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L136)

---

<a id="_responder"></a>

### _responder

```cpp
std::unique_ptr< ServerResponder > _responder
```

Type: std::unique_ptr< [`ServerResponder`](https://auscaster.com/icey/docs/api-reference/icy-http-ServerResponder.md#serverresponder) >

[Defined in src/http/include/icy/http/server.h:137](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L137)

---

<a id="_lastactivity"></a>

### _lastActivity

```cpp
std::time_t _lastActivity {0}
```

[Defined in src/http/include/icy/http/server.h:138](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L138)

---

<a id="_state-3"></a>

### _state

```cpp
ServerConnectionState _state {ServerConnectionState::ReceivingHeaders}
```

Type: [`ServerConnectionState`](https://auscaster.com/icey/docs/api-reference/icy-http.md#serverconnectionstate)

[Defined in src/http/include/icy/http/server.h:139](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L139)

---

<a id="_mode-2"></a>

### _mode

```cpp
ServerConnectionMode _mode {ServerConnectionMode::Http}
```

Type: [`ServerConnectionMode`](https://auscaster.com/icey/docs/api-reference/icy-http.md#serverconnectionmode)

[Defined in src/http/include/icy/http/server.h:140](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L140)

## Protected Methods

| Return | Name | Description |
|--------|------|-------------|
| `void` | [`onHeaders`](#onheaders-2) `virtual` `override` | Called when the incoming HTTP headers have been fully parsed. |
| `void` | [`onPayload`](#onpayload-2) `virtual` `override` | Called for each chunk of incoming body data after headers are complete. |
| `void` | [`onComplete`](#oncomplete-2) `virtual` `override` | Called when the incoming HTTP message is fully received. |
| `void` | [`onClose`](#onclose-5) `virtual` `override` | Called when the connection is closed. |
| [`http::Message`](https://auscaster.com/icey/docs/api-reference/icy-http-Message.md#message-1) * | [`incomingHeader`](#incomingheader-2) `virtual` `override` | Returns the incoming HTTP message header (request or response depending on role). |
| [`http::Message`](https://auscaster.com/icey/docs/api-reference/icy-http-Message.md#message-1) * | [`outgoingHeader`](#outgoingheader-2) `virtual` `override` | Returns the outgoing HTTP message header (request or response depending on role). |
| `void` | [`setState`](#setstate-2)  |  |
| `bool` | [`requestHasBody`](#requesthasbody) `const` |  |
| `bool` | [`responseLooksStreaming`](#responselooksstreaming) `const` |  |

---

<a id="onheaders-2"></a>

### onHeaders

`virtual` `override`

```cpp
virtual void onHeaders() override
```

[Defined in src/http/include/icy/http/server.h:123](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L123)

Called when the incoming HTTP headers have been fully parsed.

#### Reimplements

- [`Connection::onHeaders`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#onheaders-1)

---

<a id="onpayload-2"></a>

### onPayload

`virtual` `override`

```cpp
virtual void onPayload(const MutableBuffer & buffer) override
```

[Defined in src/http/include/icy/http/server.h:124](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L124)

Called for each chunk of incoming body data after headers are complete.

#### Reimplements

- [`Connection::onPayload`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#onpayload-1)

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `buffer` | const [`MutableBuffer`](https://auscaster.com/icey/docs/api-reference/icy-MutableBuffer.md#mutablebuffer-6) & | Buffer containing the received data chunk. |

---

<a id="oncomplete-2"></a>

### onComplete

`virtual` `override`

```cpp
virtual void onComplete() override
```

[Defined in src/http/include/icy/http/server.h:125](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L125)

Called when the incoming HTTP message is fully received.

#### Reimplements

- [`Connection::onComplete`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#oncomplete-1)

---

<a id="onclose-5"></a>

### onClose

`virtual` `override`

```cpp
virtual void onClose() override
```

[Defined in src/http/include/icy/http/server.h:126](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L126)

Called when the connection is closed.

#### Reimplements

- [`Connection::onClose`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#onclose-4)

---

<a id="incomingheader-2"></a>

### incomingHeader

`virtual` `override`

```cpp
virtual http::Message * incomingHeader() override
```

[Defined in src/http/include/icy/http/server.h:128](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L128)

Returns the incoming HTTP message header (request or response depending on role).

#### Reimplements

- [`Connection::incomingHeader`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#incomingheader-1)

---

<a id="outgoingheader-2"></a>

### outgoingHeader

`virtual` `override`

```cpp
virtual http::Message * outgoingHeader() override
```

[Defined in src/http/include/icy/http/server.h:129](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L129)

Returns the outgoing HTTP message header (request or response depending on role).

#### Reimplements

- [`Connection::outgoingHeader`](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md#outgoingheader-1)

---

<a id="setstate-2"></a>

### setState

```cpp
void setState(ServerConnectionState state)
```

[Defined in src/http/include/icy/http/server.h:131](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L131)

---

<a id="requesthasbody"></a>

### requestHasBody

`const`

```cpp
bool requestHasBody() const
```

[Defined in src/http/include/icy/http/server.h:132](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L132)

---

<a id="responselooksstreaming"></a>

### responseLooksStreaming

`const`

```cpp
bool responseLooksStreaming() const
```

[Defined in src/http/include/icy/http/server.h:133](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L133)

## Public Types

| Name | Description |
|------|-------------|
| [`Ptr`](#ptr-18)  |  |

---

<a id="ptr-18"></a>

### Ptr

```cpp
using Ptr = std::shared_ptr< ServerConnection >
```

Type: std::shared_ptr< [`ServerConnection`](#serverconnection-1) >

[Defined in src/http/include/icy/http/server.h:63](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/server.h#L63)
