## camel-arg camel-arg |

## Synopsis

                        CamelArg;
                        CamelArgV;
                        CamelArgGet;
                        CamelArgGetV;
    #define             camel_argv_start                    (tv, last)
    #define             camel_argv_end                      (tv)
    int                 camel_argv_build                    (CamelArgV *tv);
    int                 camel_arggetv_build                 (CamelArgGetV *tv);
    #define             camel_argv_ignore                   (tv, i)
                        CamelProperty;

## Description

## Details

### CamelArg

    typedef struct {
    	guint32 tag;
    	union {
    		void *ca_object;
    		int ca_int;
    		double ca_double;
    		char *ca_str;
    		void *ca_ptr;
    	} u;
    } CamelArg;

### CamelArgV

    typedef struct {
    	va_list ap;
    	int argc;
    	CamelArg argv[CAMEL_ARGV_MAX];
    } CamelArgV;

### CamelArgGet

    typedef struct {
    	guint32 tag;
    	union {
    		void **ca_object;
    		int *ca_int;
    		double *ca_double;
    		char **ca_str;
    		void **ca_ptr;
    	} u;
    } CamelArgGet;

### CamelArgGetV

    typedef struct {
    	va_list ap;
    	int argc;
    	CamelArgGet argv[CAMEL_ARGV_MAX];
    } CamelArgGetV;

### camel_argv_start()

    #define camel_argv_start(tv, last) va_start((tv)->ap, last)

`tv` : |
`last` : |

### camel_argv_end()

    #define camel_argv_end(tv) va_end((tv)->ap)

`tv` : |

### camel_argv_build ()

    int                 camel_argv_build                    (CamelArgV *tv);

`tv` : |
Returns : |

### camel_arggetv_build ()

    int                 camel_arggetv_build                 (CamelArgGetV *tv);

`tv` : |
Returns : |

### camel_argv_ignore()

    #define camel_argv_ignore(tv, i) ((tv)->argv[i].tag = ((tv)->argv[i].tag & CAMEL_ARG_TYPE) | CAMEL_ARG_IGNORE)

`tv` : |
`i` : |

### CamelProperty

    typedef struct {
    	guint32 tag;
    	char *name;
    	char *description;
    } CamelProperty;