/* {{{ 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()
示例#3
0
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()