/* {{{ proto XmlResults XmlQueryExpression::execute() executes the query */ PHP_DBXML_METHOD_BEGIN(XmlQueryExpression, execute) { zval *zqc = NULL, *zv = NULL, *zt = NULL; long flags = 0; PHP_DBXML_STUFFED_THIS(XmlQueryExpression); #define SET_PTR(expr) \ XmlQueryContext c = php_dbxml_get_XmlQueryContext_object_pointer(zqc TSRMLS_CC); \ XmlResults r = expr; \ object_init_ex(return_value, php_dbxml_XmlResults_ce); \ php_dbxml_set_XmlResults_object_pointer(return_value, r TSRMLS_CC); if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "O|l", &zqc, php_dbxml_XmlQueryContext_ce, &flags)) { SET_PTR(This.execute(c, flags)); } else if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "OO|l", &zv, php_dbxml_XmlValue_ce, &zqc, php_dbxml_XmlQueryContext_ce, &flags)) { XmlValue v = php_dbxml_get_XmlValue_object_pointer(zv TSRMLS_CC); SET_PTR(This.execute(v, c, flags)); } else if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "OO|l", &zt, php_dbxml_XmlTransaction_ce, &zqc, php_dbxml_XmlQueryContext_ce, &flags)) { XmlTransaction t = php_dbxml_get_XmlTransaction_object_pointer(zt TSRMLS_CC); SET_PTR(This.execute(t, c, flags)); } else if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "OOO|l", &zt, php_dbxml_XmlTransaction_ce, &zv, php_dbxml_XmlValue_ce, &zqc, php_dbxml_XmlQueryContext_ce, &flags)) { XmlValue v = php_dbxml_get_XmlValue_object_pointer(zv TSRMLS_CC); XmlTransaction t = php_dbxml_get_XmlTransaction_object_pointer(zt TSRMLS_CC); SET_PTR(This.execute(t, v, c, flags)); } else { WRONG_PARAM_COUNT; } #undef SET_PTR } PHP_DBXML_METHOD_END()
/* {{{ proto null setHighBound() */ PHP_DBXML_METHOD_BEGIN(XmlIndexLookup, setHighBound) { zval *zv; long op; PHP_DBXML_STUFFED_THIS(XmlIndexLookup); if (FAILURE == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "Ol", &zv, php_dbxml_XmlValue_ce, &op)) { WRONG_PARAM_COUNT; } XmlValue v = php_dbxml_get_XmlValue_object_pointer(zv TSRMLS_CC); This.setHighBound(v, (XmlIndexLookup::Operation) op); } PHP_DBXML_METHOD_END()
PHP_DBXML_METHOD_BEGIN(XmlDocument, setMetaData) { PHP_DBXML_STUFFED_THIS(XmlDocument); zval *zvl = NULL, *zdat = NULL; char *uri, *name; int urilen, namelen; if(SUCCESS == zend_parse_parameters( ZEND_NUM_ARGS() TSRMLS_CC, "ssO", &uri, &urilen, &name, &namelen,&zvl, php_dbxml_XmlValue_ce)) { XmlValue vl = php_dbxml_get_XmlValue_object_pointer(zvl TSRMLS_CC); This.setMetaData(std::string(uri, urilen), std::string(name, namelen), vl); } } PHP_DBXML_METHOD_END()