<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
<!ENTITY version SYSTEM "version.xml">
]>
<refentry id="MilterClientContext">
<refmeta>
<refentrytitle role="top_of_page" id="MilterClientContext.top_of_page">MilterClientContext</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>milter managerライブラリ</refmiscinfo>
</refmeta>
<refnamediv>
<refname>MilterClientContext</refname>
<refpurpose>milterプロトコルを処理します。</refpurpose>
</refnamediv>

<refsect1 id="MilterClientContext.functions" role="functions_proto">
<title role="functions_proto.title">Functions</title>
<informaltable pgwide="1" frame="none">
<tgroup cols="2">
<colspec colname="functions_return" colwidth="150px"/>
<colspec colname="functions_name"/>
<tbody>
<row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="MILTER-CLIENT-CONTEXT-ERROR:CAPS">MILTER_CLIENT_CONTEXT_ERROR</link></entry></row>
<row><entry role="function_type"><link linkend="GQuark"><returnvalue>GQuark</returnvalue></link>
</entry><entry role="function_name"><link linkend="milter-client-context-error-quark">milter_client_context_error_quark</link> <phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="MilterClientContext"><returnvalue>MilterClientContext</returnvalue></link> *
</entry><entry role="function_name"><link linkend="milter-client-context-new">milter_client_context_new</link> <phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="milter-client-context-feed">milter_client_context_feed</link> <phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gpointer"><returnvalue>gpointer</returnvalue></link>
</entry><entry role="function_name"><link linkend="milter-client-context-get-private-data">milter_client_context_get_private_data</link> <phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="milter-client-context-set-private-data">milter_client_context_set_private_data</link> <phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="milter-client-context-set-reply">milter_client_context_set_reply</link> <phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gchar"><returnvalue>gchar</returnvalue></link> *
</entry><entry role="function_name"><link linkend="milter-client-context-format-reply">milter_client_context_format_reply</link> <phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="milter-client-context-add-header">milter_client_context_add_header</link> <phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="milter-client-context-insert-header">milter_client_context_insert_header</link> <phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="milter-client-context-change-header">milter_client_context_change_header</link> <phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="milter-client-context-delete-header">milter_client_context_delete_header</link> <phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="milter-client-context-change-from">milter_client_context_change_from</link> <phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="milter-client-context-add-recipient">milter_client_context_add_recipient</link> <phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="milter-client-context-delete-recipient">milter_client_context_delete_recipient</link> <phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="milter-client-context-replace-body">milter_client_context_replace_body</link> <phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="milter-client-context-progress">milter_client_context_progress</link> <phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="milter-client-context-quarantine">milter_client_context_quarantine</link> <phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="milter-client-context-set-timeout">milter_client_context_set_timeout</link> <phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="guint"><returnvalue>guint</returnvalue></link>
</entry><entry role="function_name"><link linkend="milter-client-context-get-timeout">milter_client_context_get_timeout</link> <phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="milter-client-context-set-state">milter_client_context_set_state</link> <phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="MilterClientContextState"><returnvalue>MilterClientContextState</returnvalue></link>
</entry><entry role="function_name"><link linkend="milter-client-context-get-state">milter_client_context_get_state</link> <phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="milter-client-context-set-option">milter_client_context_set_option</link> <phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="MilterOption"><returnvalue>MilterOption</returnvalue></link> *
</entry><entry role="function_name"><link linkend="milter-client-context-get-option">milter_client_context_get_option</link> <phrase role="c_punctuation">()</phrase></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="MilterClientContext.properties" role="properties">
<title role="properties.title">プロパティ</title>
<informaltable frame="none">
<tgroup cols="3">
<colspec colname="properties_type" colwidth="150px"/>
<colspec colname="properties_name" colwidth="300px"/>
<colspec colname="properties_flags" colwidth="200px"/>
<tbody>
<row><entry role="property_type"><link linkend="MilterClient"><type>MilterClient</type></link> *</entry><entry role="property_name"><link linkend="MilterClientContext--client">client</link></entry><entry role="property_flags">Read / Write / Construct Only</entry></row>
<row><entry role="property_type"><link linkend="MilterMessageResult"><type>MilterMessageResult</type></link> *</entry><entry role="property_name"><link linkend="MilterClientContext--message-result">message-result</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="MilterOption"><type>MilterOption</type></link> *</entry><entry role="property_name"><link linkend="MilterClientContext--option">option</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="guint"><type>guint</type></link></entry><entry role="property_name"><link linkend="MilterClientContext--packet-buffer-size">packet-buffer-size</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="gchar"><type>gchar</type></link> *</entry><entry role="property_name"><link linkend="MilterClientContext--quarantine-reason">quarantine-reason</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="MilterClientContextState"><type>MilterClientContextState</type></link></entry><entry role="property_name"><link linkend="MilterClientContext--state">state</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="MilterStatus"><type>MilterStatus</type></link></entry><entry role="property_name"><link linkend="MilterClientContext--status">status</link></entry><entry role="property_flags">Read / Write</entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="MilterClientContext.signals" role="signal_proto">
<title role="signal_proto.title">シグナル</title>
<informaltable frame="none">
<tgroup cols="3">
<colspec colname="signals_return" colwidth="150px"/>
<colspec colname="signals_name" colwidth="300px"/>
<colspec colname="signals_flags" colwidth="200px"/>
<tbody>
<row><entry role="signal_type"><link linkend="MilterStatus"><returnvalue>MilterStatus</returnvalue></link></entry><entry role="signal_name"><link linkend="MilterClientContext-abort">abort</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="MilterClientContext-abort-response">abort-response</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="MilterStatus"><returnvalue>MilterStatus</returnvalue></link></entry><entry role="signal_name"><link linkend="MilterClientContext-body">body</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="MilterClientContext-body-response">body-response</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="MilterStatus"><returnvalue>MilterStatus</returnvalue></link></entry><entry role="signal_name"><link linkend="MilterClientContext-connect">connect</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="MilterClientContext-connect-response">connect-response</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="MilterStatus"><returnvalue>MilterStatus</returnvalue></link></entry><entry role="signal_name"><link linkend="MilterClientContext-data">data</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="MilterClientContext-data-response">data-response</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="MilterClientContext-define-macro">define-macro</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="MilterStatus"><returnvalue>MilterStatus</returnvalue></link></entry><entry role="signal_name"><link linkend="MilterClientContext-end-of-header">end-of-header</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="MilterClientContext-end-of-header-response">end-of-header-response</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="MilterStatus"><returnvalue>MilterStatus</returnvalue></link></entry><entry role="signal_name"><link linkend="MilterClientContext-end-of-message">end-of-message</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="MilterClientContext-end-of-message-response">end-of-message-response</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="MilterStatus"><returnvalue>MilterStatus</returnvalue></link></entry><entry role="signal_name"><link linkend="MilterClientContext-envelope-from">envelope-from</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="MilterClientContext-envelope-from-response">envelope-from-response</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="MilterStatus"><returnvalue>MilterStatus</returnvalue></link></entry><entry role="signal_name"><link linkend="MilterClientContext-envelope-recipient">envelope-recipient</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="MilterClientContext-envelope-recipient-response">envelope-recipient-response</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="MilterStatus"><returnvalue>MilterStatus</returnvalue></link></entry><entry role="signal_name"><link linkend="MilterClientContext-header">header</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="MilterClientContext-header-response">header-response</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="MilterStatus"><returnvalue>MilterStatus</returnvalue></link></entry><entry role="signal_name"><link linkend="MilterClientContext-helo">helo</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="MilterClientContext-helo-response">helo-response</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="MilterClientContext-message-processed">message-processed</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="MilterStatus"><returnvalue>MilterStatus</returnvalue></link></entry><entry role="signal_name"><link linkend="MilterClientContext-negotiate">negotiate</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="MilterClientContext-negotiate-response">negotiate-response</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="MilterClientContext-timeout">timeout</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="MilterStatus"><returnvalue>MilterStatus</returnvalue></link></entry><entry role="signal_name"><link linkend="MilterClientContext-unknown">unknown</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="MilterClientContext-unknown-response">unknown-response</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="MilterClientContext.other" role="other_proto">
<title role="other_proto.title">Types and Values</title>
<informaltable role="enum_members_table" pgwide="1" frame="none">
<tgroup cols="2">
<colspec colname="name" colwidth="150px"/>
<colspec colname="description"/>
<tbody>
<row><entry role="datatype_keyword">enum</entry><entry role="function_name"><link linkend="MilterClientContextError">MilterClientContextError</link></entry></row>
<row><entry role="datatype_keyword">enum</entry><entry role="function_name"><link linkend="MilterClientContextState">MilterClientContextState</link></entry></row>
<row><entry role="datatype_keyword"/><entry role="function_name"><link linkend="MilterClientContext-struct">MilterClientContext</link></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="MilterClientContext.object-hierarchy" role="object_hierarchy">
<title role="object_hierarchy.title">オブジェクト階層</title>
<screen>    <link linkend="GObject">GObject</link>
    <phrase role="lineart">╰──</phrase> <link linkend="MilterAgent">MilterAgent</link>
        <phrase role="lineart">╰──</phrase> <link linkend="MilterProtocolAgent">MilterProtocolAgent</link>
            <phrase role="lineart">╰──</phrase> MilterClientContext
</screen>
</refsect1>
<refsect1 id="MilterClientContext.implemented-interfaces" role="impl_interfaces">
<title role="impl_interfaces.title">実装されたインターフェイス</title>
<para>MilterClientContextは<link linkend="MilterErrorEmittable">MilterErrorEmittable</link>と<link linkend="MilterFinishedEmittable">MilterFinishedEmittable</link>を実装しています。</para>

</refsect1>


<refsect1 id="MilterClientContext.description" role="desc">
<title role="desc.title">説明</title>
<para><link linkend="MilterClientContext"><literal>MilterClientContext</literal></link>は1つのmilterプロトコルセッションを処理します。これは<link linkend="MilterClientContext"><literal>MilterClientContext</literal></link>インスタンスは各milterプロトコルセッション毎に生成されるということです。</para>
<para>各milterプロトコルコマンドを処理するために、<link linkend="MilterClientContext"><literal>MilterClientContext</literal></link>のシグナルに接続します。<link linkend="MilterClientContext"><literal>MilterClientContext</literal></link>にはmilterプロトコルのイベントに対応したシグナルがあります。</para>
<rd>
: ((</rd>|URL:https://www.milter.org/developers/api/xxfi_negotiate&gt;))
   
: ((</refsect1>|URL:https://www.milter.org/developers/api/xxfi_connect&gt;))
   
: ((</refentry>
