Details
CamelArg
typedef struct {
guint32 tag;
union {
gpointer ca_object;
gint ca_int;
gdouble ca_double;
gchar *ca_str;
gpointer ca_ptr;
} u;
} CamelArg;
CamelArgV
typedef struct {
va_list ap;
gint argc;
CamelArg argv[CAMEL_ARGV_MAX];
} CamelArgV;
CamelArgGet
typedef struct {
guint32 tag;
union {
gpointer *ca_object;
gint *ca_int;
gdouble *ca_double;
gchar **ca_str;
gpointer *ca_ptr;
} u;
} CamelArgGet;
CamelArgGetV
typedef struct {
va_list ap;
gint argc;
CamelArgGet argv[CAMEL_ARGV_MAX];
} CamelArgGetV;
ca_object
#define ca_object u.ca_object
ca_int
#define ca_int u.ca_int
ca_double
#define ca_double u.ca_double
ca_str
#define ca_str u.ca_str
ca_ptr
#define ca_ptr u.ca_ptr
CAMEL_ARGV_MAX
#define CAMEL_ARGV_MAX (20)
camel_argv_start()
#define camel_argv_start(tv, last) va_start((tv)->ap, last)
camel_argv_end()
#define camel_argv_end(tv) va_end((tv)->ap)
camel_argv_ignore()
#define camel_argv_ignore(tv, i) ((tv)->argv[i].tag = ((tv)->argv[i].tag & CAMEL_ARG_TYPE) | CAMEL_ARG_IGNORE)
CamelProperty
typedef struct {
guint32 tag;
const gchar *name;
const gchar *description;
} CamelProperty;