<?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="MilterDecoder">
<refmeta>
<refentrytitle role="top_of_page" id="MilterDecoder.top_of_page">MilterDecoder</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>milter managerライブラリ</refmiscinfo>
</refmeta>
<refnamediv>
<refname>MilterDecoder</refname>
<refpurpose/>
</refnamediv>

<refsynopsisdiv id="MilterDecoder.synopsis" role="synopsis">
<title role="synopsis.title">概要</title>

<synopsis>#define             <link linkend="MILTER-DECODER-ERROR:CAPS">MILTER_DECODER_ERROR</link>
enum                <link linkend="MilterDecoderError">MilterDecoderError</link>;
enum                <link linkend="MilterDecoderCompareType">MilterDecoderCompareType</link>;
                    <link linkend="MilterDecoder-struct">MilterDecoder</link>;
<link linkend="GQuark"><returnvalue>GQuark</returnvalue></link>              <link linkend="milter-decoder-error-quark">milter_decoder_error_quark</link>          (void);
<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>            <link linkend="milter-decoder-decode">milter_decoder_decode</link>               (<link linkend="MilterDecoder"><returnvalue>MilterDecoder</returnvalue></link> *decoder,
                                                         const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> *chunk,
                                                         <link linkend="gsize"><returnvalue>gsize</returnvalue></link> size,
                                                         <link linkend="GError"><returnvalue>GError</returnvalue></link> **error);
<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>            <link linkend="milter-decoder-end-decode">milter_decoder_end_decode</link>           (<link linkend="MilterDecoder"><returnvalue>MilterDecoder</returnvalue></link> *decoder,
                                                         <link linkend="GError"><returnvalue>GError</returnvalue></link> **error);
const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> *       <link linkend="milter-decoder-get-buffer">milter_decoder_get_buffer</link>           (<link linkend="MilterDecoder"><returnvalue>MilterDecoder</returnvalue></link> *decoder);
<link linkend="gint32"><returnvalue>gint32</returnvalue></link>              <link linkend="milter-decoder-get-command-length">milter_decoder_get_command_length</link>   (<link linkend="MilterDecoder"><returnvalue>MilterDecoder</returnvalue></link> *decoder);
<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>            <link linkend="milter-decoder-check-command-length">milter_decoder_check_command_length</link> (const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> *buffer,
                                                         <link linkend="gint"><returnvalue>gint</returnvalue></link> length,
                                                         <link linkend="gint"><returnvalue>gint</returnvalue></link> expected_length,
                                                         <link linkend="MilterDecoderCompareType"><returnvalue>MilterDecoderCompareType</returnvalue></link> compare_type,
                                                         <link linkend="GError"><returnvalue>GError</returnvalue></link> **error,
                                                         const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> *target);
<link linkend="gint"><returnvalue>gint</returnvalue></link>                <link linkend="milter-decoder-decode-null-terminated-value">milter_decoder_decode_null_terminated_value</link>
                                                        (const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> *buffer,
                                                         <link linkend="gint"><returnvalue>gint</returnvalue></link> length,
                                                         <link linkend="GError"><returnvalue>GError</returnvalue></link> **error,
                                                         const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> *message);
<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>            <link linkend="milter-decoder-decode-header-content">milter_decoder_decode_header_content</link>
                                                        (const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> *buffer,
                                                         <link linkend="gint"><returnvalue>gint</returnvalue></link> length,
                                                         const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> **name,
                                                         const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> **value,
                                                         <link linkend="GError"><returnvalue>GError</returnvalue></link> **error);
<link linkend="MilterOption"><returnvalue>MilterOption</returnvalue></link> *      <link linkend="milter-decoder-decode-negotiate">milter_decoder_decode_negotiate</link>     (const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> *buffer,
                                                         <link linkend="gint"><returnvalue>gint</returnvalue></link> length,
                                                         <link linkend="gint"><returnvalue>gint</returnvalue></link> *processed_length,
                                                         <link linkend="GError"><returnvalue>GError</returnvalue></link> **error);
</synopsis>
</refsynopsisdiv>
<refsect1 id="MilterDecoder.object-hierarchy" role="object_hierarchy">
<title role="object_hierarchy.title">オブジェクト階層</title>
<synopsis>
  <link linkend="GObject">GObject</link>
   +----MilterDecoder
</synopsis>
</refsect1>

<refsect1 id="MilterDecoder.description" role="desc">
<title role="desc.title">説明</title>
<para>
</para>
</refsect1>
<refsect1 id="MilterDecoder.details" role="details">
<title role="details.title">詳細</title>
<refsect2 id="MILTER-DECODER-ERROR:CAPS" role="macro">
<title>MILTER_DECODER_ERROR</title>
<indexterm zone="MILTER-DECODER-ERROR:CAPS"><primary>MILTER_DECODER_ERROR</primary></indexterm>
<programlisting>#define MILTER_DECODER_ERROR           (milter_decoder_error_quark())
</programlisting>
<para>
</para></refsect2>
<refsect2 id="MilterDecoderError" role="enum">
<title>enum MilterDecoderError</title>
<indexterm zone="MilterDecoderError"><primary>MilterDecoderError</primary></indexterm>
<programlisting>typedef enum
{
    MILTER_DECODER_ERROR_SHORT_COMMAND_LENGTH,
    MILTER_DECODER_ERROR_LONG_COMMAND_LENGTH,
    MILTER_DECODER_ERROR_UNEXPECTED_END,
    MILTER_DECODER_ERROR_UNEXPECTED_COMMAND,
    MILTER_DECODER_ERROR_MISSING_NULL
} MilterDecoderError;
</programlisting>
<para>
</para></refsect2>
<refsect2 id="MilterDecoderCompareType" role="enum">
<title>enum MilterDecoderCompareType</title>
<indexterm zone="MilterDecoderCompareType"><primary>MilterDecoderCompareType</primary></indexterm>
<programlisting>typedef enum {
    MILTER_DECODER_COMPARE_AT_LEAST,
    MILTER_DECODER_COMPARE_EXACT
} MilterDecoderCompareType;
</programlisting>
<para>
</para></refsect2>
<refsect2 id="MilterDecoder-struct" role="struct">
<title>MilterDecoder</title>
<indexterm zone="MilterDecoder-struct"><primary>MilterDecoder</primary></indexterm>
<programlisting>typedef struct _MilterDecoder MilterDecoder;</programlisting>
<para>
</para></refsect2>
<refsect2 id="milter-decoder-error-quark" role="function">
<title>milter_decoder_error_quark ()</title>
<indexterm zone="milter-decoder-error-quark"><primary>milter_decoder_error_quark</primary></indexterm>
<programlisting><link linkend="GQuark"><returnvalue>GQuark</returnvalue></link>              milter_decoder_error_quark          (void);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><emphasis>返値</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="milter-decoder-decode" role="function">
<title>milter_decoder_decode ()</title>
<indexterm zone="milter-decoder-decode"><primary>milter_decoder_decode</primary></indexterm>
<programlisting><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>            milter_decoder_decode               (<link linkend="MilterDecoder"><returnvalue>MilterDecoder</returnvalue></link> *decoder,
                                                         const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> *chunk,
                                                         <link linkend="gsize"><returnvalue>gsize</returnvalue></link> size,
                                                         <link linkend="GError"><returnvalue>GError</returnvalue></link> **error);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>decoder</parameter> :</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>chunk</parameter> :</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>size</parameter> :</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter> :</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>返値</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="milter-decoder-end-decode" role="function">
<title>milter_decoder_end_decode ()</title>
<indexterm zone="milter-decoder-end-decode"><primary>milter_decoder_end_decode</primary></indexterm>
<programlisting><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>            milter_decoder_end_decode           (<link linkend="MilterDecoder"><returnvalue>MilterDecoder</returnvalue></link> *decoder,
                                                         <link linkend="GError"><returnvalue>GError</returnvalue></link> **error);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>decoder</parameter> :</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter> :</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>返値</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="milter-decoder-get-buffer" role="function">
<title>milter_decoder_get_buffer ()</title>
<indexterm zone="milter-decoder-get-buffer"><primary>milter_decoder_get_buffer</primary></indexterm>
<programlisting>const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> *       milter_decoder_get_buffer           (<link linkend="MilterDecoder"><returnvalue>MilterDecoder</returnvalue></link> *decoder);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>decoder</parameter> :</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>返値</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="milter-decoder-get-command-length" role="function">
<title>milter_decoder_get_command_length ()</title>
<indexterm zone="milter-decoder-get-command-length"><primary>milter_decoder_get_command_length</primary></indexterm>
<programlisting><link linkend="gint32"><returnvalue>gint32</returnvalue></link>              milter_decoder_get_command_length   (<link linkend="MilterDecoder"><returnvalue>MilterDecoder</returnvalue></link> *decoder);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>decoder</parameter> :</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>返値</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="milter-decoder-check-command-length" role="function">
<title>milter_decoder_check_command_length ()</title>
<indexterm zone="milter-decoder-check-command-length"><primary>milter_decoder_check_command_length</primary></indexterm>
<programlisting><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>            milter_decoder_check_command_length (const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> *buffer,
                                                         <link linkend="gint"><returnvalue>gint</returnvalue></link> length,
                                                         <link linkend="gint"><returnvalue>gint</returnvalue></link> expected_length,
                                                         <link linkend="MilterDecoderCompareType"><returnvalue>MilterDecoderCompareType</returnvalue></link> compare_type,
                                                         <link linkend="GError"><returnvalue>GError</returnvalue></link> **error,
                                                         const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> *target);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>buffer</parameter> :</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>length</parameter> :</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>expected_length</parameter> :</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>compare_type</parameter> :</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter> :</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>target</parameter> :</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>返値</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="milter-decoder-decode-null-terminated-value" role="function">
<title>milter_decoder_decode_null_terminated_value ()</title>
<indexterm zone="milter-decoder-decode-null-terminated-value"><primary>milter_decoder_decode_null_terminated_value</primary></indexterm>
<programlisting><link linkend="gint"><returnvalue>gint</returnvalue></link>                milter_decoder_decode_null_terminated_value
                                                        (const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> *buffer,
                                                         <link linkend="gint"><returnvalue>gint</returnvalue></link> length,
                                                         <link linkend="GError"><returnvalue>GError</returnvalue></link> **error,
                                                         const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> *message);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>buffer</parameter> :</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>length</parameter> :</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter> :</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>message</parameter> :</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>返値</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="milter-decoder-decode-header-content" role="function">
<title>milter_decoder_decode_header_content ()</title>
<indexterm zone="milter-decoder-decode-header-content"><primary>milter_decoder_decode_header_content</primary></indexterm>
<programlisting><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>            milter_decoder_decode_header_content
                                                        (const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> *buffer,
                                                         <link linkend="gint"><returnvalue>gint</returnvalue></link> length,
                                                         const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> **name,
                                                         const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> **value,
                                                         <link linkend="GError"><returnvalue>GError</returnvalue></link> **error);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>buffer</parameter> :</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>length</parameter> :</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>name</parameter> :</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>value</parameter> :</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter> :</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>返値</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="milter-decoder-decode-negotiate" role="function">
<title>milter_decoder_decode_negotiate ()</title>
<indexterm zone="milter-decoder-decode-negotiate"><primary>milter_decoder_decode_negotiate</primary></indexterm>
<programlisting><link linkend="MilterOption"><returnvalue>MilterOption</returnvalue></link> *      milter_decoder_decode_negotiate     (const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> *buffer,
                                                         <link linkend="gint"><returnvalue>gint</returnvalue></link> length,
                                                         <link linkend="gint"><returnvalue>gint</returnvalue></link> *processed_length,
                                                         <link linkend="GError"><returnvalue>GError</returnvalue></link> **error);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>buffer</parameter> :</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>length</parameter> :</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>processed_length</parameter> :</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter> :</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>返値</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>

</refsect1>

</refentry>
