# Class TCefResponseFilterOwn

Description
Hierarchy
Methods

## Unit

uCEFResponseFilter

## Declaration

`type TCefResponseFilterOwn = class(TCefBaseRefCountedOwn, ICefResponseFilter)`

## Description

Owned class implementing a resource filter.

The functions of this interface will be called on the browser process IO thread.

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

## Hierarchy

- TInterfacedObject
- TCefBaseRefCountedOwn
- TCefResponseFilterOwn

## Overview

### Methods

Protected | `function InitFilter: Boolean; virtual; abstract;`
Protected | `function Filter(data_in: Pointer; data_in_size: NativeUInt; var data_in_read: NativeUInt; data_out: Pointer; data_out_size : NativeUInt; var data_out_written: NativeUInt): TCefResponseFilterStatus; virtual; abstract;`
Public | `constructor Create; virtual;`

## Description

### Methods

Protected | `function InitFilter: Boolean; virtual; abstract;`
Initialize the response filter. Will only be called a single time. The filter will not be installed if this function returns false (0).

Protected | `function Filter(data_in: Pointer; data_in_size: NativeUInt; var data_in_read: NativeUInt; data_out: Pointer; data_out_size : NativeUInt; var data_out_written: NativeUInt): TCefResponseFilterStatus; virtual; abstract;`
Called to filter a chunk of data. Expected usage is as follows:
    1. Read input data from |data_in| and set |data_in_read| to the number of
       bytes that were read up to a maximum of |data_in_size|. |data_in| will
       be NULL if |data_in_size| is zero.
    2. Write filtered output data to |data_out| and set |data_out_written| to
       the number of bytes that were written up to a maximum of
       |data_out_size|. If no output data was written then all data must be
       read from |data_in| (user must set |data_in_read| = |data_in_size|).
    3. Return RESPONSE_FILTER_DONE if all output data was written or
       RESPONSE_FILTER_NEED_MORE_DATA if output data is still pending.
This function will be called repeatedly until the input buffer has been fully read (user sets |data_in_read| = |data_in_size|) and there is no more input data to filter (the resource response is complete). This function may then be called an additional time with an NULL input buffer if the user filled the output buffer (set |data_out_written| = |data_out_size|) and returned RESPONSE_FILTER_NEED_MORE_DATA to indicate that output data is still pending. Calls to this function will stop when one of the following conditions is met:
    1. There is no more input data to filter (the resource response is
       complete) and the user sets |data_out_written| = 0 or returns
       RESPONSE_FILTER_DONE to indicate that all data has been written, or;
    2. The user returns RESPONSE_FILTER_ERROR to indicate an error.
Do not keep a reference to the buffers passed to this function.

Public | `constructor Create; virtual;`
This item has no description.

Generated by PasDoc 1.0.4.