Index: ossp-pkg/cfg/perl/cfg.xs RCS File: /v/ossp/cvs/ossp-pkg/cfg/perl/cfg.xs,v rcsdiff -q -kk '-r1.1' '-r1.2' -u '/v/ossp/cvs/ossp-pkg/cfg/perl/cfg.xs,v' 2>/dev/null --- 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: