sr_xavp_t *xbuff_new(str *name) { sr_xavp_t *xbuffs_root; sr_xavp_t *xbuff; sr_xval_t xbuff_val; memset((void*)&xbuff_val,0,sizeof(sr_xval_t)); xbuff_val.type = SR_XTYPE_NULL; xbuffs_root = xavp_get_xbuffs(); if(!xbuffs_root) { xbuff = xavp_add_xavp_value(&xbuff_list,name,&xbuff_val,xavp_get_crt_list()); } xbuff=xavp_get_child(&xbuff_list, name); if (!xbuff) { xbuff_val.type = SR_XTYPE_NULL; xbuff_val.v.xavp = NULL; xbuff=xavp_add_value(name,&xbuff_val,&xbuffs_root->val.v.xavp); } return xbuff; }
/** * return child node of an xavp if it has string value * - $xavp(rname=>cname) */ sr_xavp_t* xavp_get_child_with_sval(str *rname, str *cname) { sr_xavp_t *vavp=NULL; vavp = xavp_get_child(rname, cname); if(vavp==NULL || vavp->val.type!=SR_XTYPE_STR) return NULL; return vavp; }
sr_xavp_t *pv_xbuff_get_xbuff(str *name) { return xavp_get_child(&xbuff_list,name); }