<refentry id="camel-camel-arg">
<refmeta>
<refentrytitle role="top_of_page" id="camel-camel-arg.top_of_page">camel-arg</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>CAMEL Library</refmiscinfo>
</refmeta>

<refnamediv>
<refname>camel-arg</refname>
<refpurpose></refpurpose>
</refnamediv>

<refsynopsisdiv id="camel-camel-arg.synopsis" role="synopsis">
<title role="synopsis.title">Synopsis</title>

<synopsis>
                    <link linkend="CamelArg">CamelArg</link>;
                    <link linkend="CamelArgV">CamelArgV</link>;
                    <link linkend="CamelArgGet">CamelArgGet</link>;
                    <link linkend="CamelArgGetV">CamelArgGetV</link>;
#define             <link linkend="camel-argv-start">camel_argv_start</link>                    (tv, last)
#define             <link linkend="camel-argv-end">camel_argv_end</link>                      (tv)
<link linkend="int">int</link>                 <link linkend="camel-argv-build">camel_argv_build</link>                    (<link linkend="CamelArgV">CamelArgV</link> *tv);
<link linkend="int">int</link>                 <link linkend="camel-arggetv-build">camel_arggetv_build</link>                 (<link linkend="CamelArgGetV">CamelArgGetV</link> *tv);
#define             <link linkend="camel-argv-ignore">camel_argv_ignore</link>                   (tv, i)
                    <link linkend="CamelProperty">CamelProperty</link>;
</synopsis>
</refsynopsisdiv>









<refsect1 id="camel-camel-arg.description" role="desc">
<title role="desc.title">Description</title>
<para>
</para>
</refsect1>

<refsect1 id="camel-camel-arg.details" role="details">
<title role="details.title">Details</title>
<refsect2 id="CamelArg" role="struct">
<title>CamelArg</title>
<indexterm zone="CamelArg"><primary sortas="CamelArg">CamelArg</primary></indexterm><programlisting>typedef struct {
	guint32 tag;
	union {
		void *ca_object;
		int ca_int;
		double ca_double;
		char *ca_str;
		void *ca_ptr;
	} u;
} CamelArg;
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CamelArgV" role="struct">
<title>CamelArgV</title>
<indexterm zone="CamelArgV"><primary sortas="CamelArgV">CamelArgV</primary></indexterm><programlisting>typedef struct {
	va_list ap;
	int argc;
	CamelArg argv[CAMEL_ARGV_MAX];
} CamelArgV;
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CamelArgGet" role="struct">
<title>CamelArgGet</title>
<indexterm zone="CamelArgGet"><primary sortas="CamelArgGet">CamelArgGet</primary></indexterm><programlisting>typedef struct {
	guint32 tag;
	union {
		void **ca_object;
		int *ca_int;
		double *ca_double;
		char **ca_str;
		void **ca_ptr;
	} u;
} CamelArgGet;
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CamelArgGetV" role="struct">
<title>CamelArgGetV</title>
<indexterm zone="CamelArgGetV"><primary sortas="CamelArgGetV">CamelArgGetV</primary></indexterm><programlisting>typedef struct {
	va_list ap;
	int argc;
	CamelArgGet argv[CAMEL_ARGV_MAX];
} CamelArgGetV;
</programlisting>
<para>
</para></refsect2>
<refsect2 id="camel-argv-start" role="macro">
<title>camel_argv_start()</title>
<indexterm zone="camel-argv-start"><primary sortas="camel_argv_start">camel_argv_start</primary></indexterm><programlisting>#define camel_argv_start(tv, last) va_start((tv)-&gt;ap, last)
</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>tv</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>last</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-argv-end" role="macro">
<title>camel_argv_end()</title>
<indexterm zone="camel-argv-end"><primary sortas="camel_argv_end">camel_argv_end</primary></indexterm><programlisting>#define camel_argv_end(tv) va_end((tv)-&gt;ap)
</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>tv</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-argv-build" role="function">
<title>camel_argv_build ()</title>
<indexterm zone="camel-argv-build"><primary sortas="camel_argv_build">camel_argv_build</primary></indexterm><programlisting><link linkend="int">int</link>                 camel_argv_build                    (<link linkend="CamelArgV">CamelArgV</link> *tv);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>tv</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-arggetv-build" role="function">
<title>camel_arggetv_build ()</title>
<indexterm zone="camel-arggetv-build"><primary sortas="camel_arggetv_build">camel_arggetv_build</primary></indexterm><programlisting><link linkend="int">int</link>                 camel_arggetv_build                 (<link linkend="CamelArgGetV">CamelArgGetV</link> *tv);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>tv</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-argv-ignore" role="macro">
<title>camel_argv_ignore()</title>
<indexterm zone="camel-argv-ignore"><primary sortas="camel_argv_ignore">camel_argv_ignore</primary></indexterm><programlisting>#define camel_argv_ignore(tv, i) ((tv)-&gt;argv[i].tag = ((tv)-&gt;argv[i].tag &amp; CAMEL_ARG_TYPE) | CAMEL_ARG_IGNORE)
</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>tv</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>i</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="CamelProperty" role="struct">
<title>CamelProperty</title>
<indexterm zone="CamelProperty"><primary sortas="CamelProperty">CamelProperty</primary></indexterm><programlisting>typedef struct {
	guint32 tag;
	char *name;
	char *description;
} CamelProperty;
</programlisting>
<para>
</para></refsect2>

</refsect1>




</refentry>
