.\"Copyright 2008-2010 IBM Corp.
.TH SCI_Filter_unload 3 "Dec 4, 2009" "1.0.0" "SCI"

.SH NAME
\fBSCI_Filter_unload\fP \- Unload a previously loaded filter

.SH SYNTAX
.ft R

.SH C Syntax
.nf
#include <sci.h>
int SCI_Filter_unload(int \fIfilter_id\fP)

.SH INPUT PARAMETERS
.ft R
.TP 1i
filter_id
The id of the filter to be unloaded (IN).

.SH DESCRIPTION
.ft R
This subroutine is used to unload a previously loaded filter specifed by \fIfilter_id\fP,
if success, the termination handler defined in the filter will be called.
.sp
Usually cleanup works can be performed in the termination handler.
.sp
For more information, please refer to SCI's online documents.

.SH EXAMPLE
.ft R
.nf
        {
                int filter_id = 1;
                ...
                SCI_Filter_unload(filter_id);
        }
.fi

.SH ERRORS
.ft R
All SCI routines return an error value.
.sp
.TP 1i
SCI_ERR_UNINTIALIZED
Uninitialized SCI execution environment
.TP 1i
SCI_ERR_INVALID_CALLER
Can only be called in the front end
.TP 1i
SCI_ERR_FILTER_PREDEFINED
Can't unload predefined filter SCI_FILTER_NULL
.TP 1i
SCI_ERR_FILTER_ID
Unknown filter id or the filter is not loaded previously
.TP 1i
SCI_ERR_NO_MEM
Out of memory

.SH SEE ALSO
.ft R
.nf
\fBSCI_Filter_load\fP(3)
