--- cfg.xs 2004/11/14 18:38:53 1.1
+++ cfg.xs 2004/11/17 13:14:34 1.2
@@ -575,6 +575,70 @@
RETVAL
cfg_rc_t
+cfg_data_get(data,attr,va_arg1)
+ CASE: (cfg_data_attr_t)SvIV(ST(1)) == CFG_DATA_ATTR_TYPE
+ PROTOTYPE:
+ $$$
+ INPUT:
+ cfg_data_t *data
+ cfg_data_attr_t attr
+ cfg_data_type_t &va_arg1 = NO_INIT
+ CODE:
+ RETVAL = cfg_data_get(data, attr, &va_arg1);
+ OUTPUT:
+ va_arg1
+ RETVAL
+ CASE: (cfg_data_attr_t)SvIV(ST(1)) == CFG_DATA_ATTR_VALUE
+ INPUT:
+ cfg_data_t *data
+ cfg_data_attr_t attr
+ SV *va_arg1
+ PREINIT:
+ cfg_data_type_t type;
+ CODE:
+ if ((RETVAL = cfg_data_get(data, CFG_DATA_ATTR_TYPE, &type)) == CFG_OK) {
+ switch (type) {
+ case CFG_DATA_TYPE_PTR: {
+ void *arg;
+ RETVAL = cfg_data_get(data, attr, &arg);
+ sv_setiv(va_arg1, PTR2INT(arg));
+ break;
+ }
+ case CFG_DATA_TYPE_STR: {
+ char *arg;
+ RETVAL = cfg_data_set(data, attr, &arg);
+ sv_setpv(va_arg1, arg);
+ break;
+ }
+ case CFG_DATA_TYPE_INT: {
+ int arg;
+ RETVAL = cfg_data_set(data, attr, &arg);
+ sv_setiv(va_arg1, arg);
+ break;
+ }
+ case CFG_DATA_TYPE_FLT: {
+ double arg;
+ RETVAL = cfg_data_set(data, attr, &arg);
+ sv_setnv(va_arg1, arg);
+ break;
+ }
+ }
+ }
+ OUTPUT:
+ va_arg1
+ RETVAL
+ CASE: (cfg_data_attr_t)SvIV(ST(1)) == CFG_DATA_ATTR_CTRL
+ INPUT:
+ cfg_data_t *data
+ cfg_data_attr_t attr
+ cfg_data_cb_t &va_arg1 = NO_INIT
+ CODE:
+ RETVAL = cfg_data_set(data, attr, &va_arg1);
+ OUTPUT:
+ va_arg1
+ RETVAL
+
+cfg_rc_t
cfg_data_ctrl(data,ctrl,va_arg1)
CASE: (cfg_data_ctrl_t)SvIV(ST(1)) == CFG_DATA_CTRL_CLONE
PROTOTYPE:
|