# Interface ICefServer

Description
Hierarchy
Fields
Methods
Properties

## Unit

uCEFInterfaces

## Declaration

`type ICefServer = interface(ICefBaseRefCounted)`

## Description

Interface representing a server that supports HTTP and WebSocket requests. Server capacity is limited and is intended to handle only a small number of simultaneous connections (e.g. for communicating between applications on localhost). The functions of this interface are safe to call from any thread in the brower process unless otherwise indicated.

UNKNOWN

<see href="https://bitbucket.org/chromiumembedded/cef/src/master/include/capi/cef_server_capi.h">CEF source file: /include/capi/cef_server_capi.h (cef_server_t))

## Hierarchy

- IInterface
- ICefBaseRefCounted
- ICefServer

## Overview

### Methods

| `function GetTaskRunner: ICefTaskRunner;`
| `procedure Shutdown;`
| `function IsRunning: boolean;`
| `function GetAddress: ustring;`
| `function HasConnection: boolean;`
| `function IsValidConnection(connection_id: Integer) : boolean;`
| `procedure SendHttp200response(connection_id: Integer; const content_type: ustring; const data: Pointer; data_size: NativeUInt);`
| `procedure SendHttp404response(connection_id: Integer);`
| `procedure SendHttp500response(connection_id: Integer; const error_message: ustring);`
| `procedure SendHttpResponse(connection_id, response_code: Integer; const content_type: ustring; content_length: int64; const extra_headers: ICefStringMultimap);`
| `procedure SendRawData(connection_id: Integer; const data: Pointer; data_size: NativeUInt);`
| `procedure CloseConnection(connection_id: Integer);`
| `procedure SendWebSocketMessage(connection_id: Integer; const data: Pointer; data_size: NativeUInt);`

## Description

### Methods

| `function GetTaskRunner: ICefTaskRunner;`

Returns the task runner for the dedicated server thread.

###### Attributes

GUID['{41D41764-A74B-4552-B166-C77E70549047}']

| `procedure Shutdown;`
Stop the server and shut down the dedicated server thread. See ICefServerHandler.OnServerCreated documentation for a description of server lifespan.

| `function IsRunning: boolean;`
Returns true (1) if the server is currently running and accepting incoming connections. See ICefServerHandler.OnServerCreated documentation for a description of server lifespan. This function must be called on the dedicated server thread.

| `function GetAddress: ustring;`
Returns the server address including the port number.

| `function HasConnection: boolean;`
Returns true (1) if the server currently has a connection. This function must be called on the dedicated server thread.

| `function IsValidConnection(connection_id: Integer) : boolean;`
Returns true (1) if |connection_id| represents a valid connection. This function must be called on the dedicated server thread.

| `procedure SendHttp200response(connection_id: Integer; const content_type: ustring; const data: Pointer; data_size: NativeUInt);`
Send an HTTP 200 "OK" response to the connection identified by |connection_id|. |content_type| is the response content type (e.g. "text/html"), |data| is the response content, and |data_size| is the size of |data| in bytes. The contents of |data| will be copied. The connection will be closed automatically after the response is sent.

| `procedure SendHttp404response(connection_id: Integer);`
Send an HTTP 404 "Not Found" response to the connection identified by |connection_id|. The connection will be closed automatically after the response is sent.

| `procedure SendHttp500response(connection_id: Integer; const error_message: ustring);`
Send an HTTP 500 "Internal Server Error" response to the connection identified by |connection_id|. |error_message| is the associated error message. The connection will be closed automatically after the response is sent.

| `procedure SendHttpResponse(connection_id, response_code: Integer; const content_type: ustring; content_length: int64; const extra_headers: ICefStringMultimap);`

Send a custom HTTP response to the connection identified by |connection_id|. |response_code| is the HTTP response code sent in the status line (e.g. 200), |content_type| is the response content type sent as the "Content-Type" header (e.g. "text/html"), |content_length| is the expected content length, and |extra_headers| is the map of extra response headers. If |content_length| is >= 0 then the "Content-Length" header will be sent. If |content_length| is 0 then no content is expected and the connection will be closed automatically after the response is sent. If |content_length| is < 0 then no "Content-Length" header will be sent and the client will continue reading until the connection is closed. Use the SendRawData function to send the content, if applicable, and call CloseConnection after all content has been sent.

| `procedure SendRawData(connection_id: Integer; const data: Pointer; data_size: NativeUInt);`
Send raw data directly to the connection identified by |connection_id|. |data| is the raw data and |data_size| is the size of |data| in bytes. The contents of |data| will be copied. No validation of |data| is performed internally so the client should be careful to send the amount indicated by the "Content-Length" header, if specified. See SendHttpResponse documentation for intended usage.

| `procedure CloseConnection(connection_id: Integer);`
Close the connection identified by |connection_id|. See SendHttpResponse documentation for intended usage.

| `procedure SendWebSocketMessage(connection_id: Integer; const data: Pointer; data_size: NativeUInt);`
Send a WebSocket message to the connection identified by |connection_id|. |data| is the response content and |data_size| is the size of |data| in bytes. The contents of |data| will be copied. See ICefServerHandler.OnWebSocketRequest documentation for intended usage.

Generated by PasDoc 0.17.0.snapshot.