PHP_METHOD(MongoDB, setProfilingLevel) { long level; zval *data, *cmd_return; zval **ok; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &level) == FAILURE) { return; } MAKE_STD_ZVAL(data); array_init(data); add_assoc_long(data, "profile", level); MAKE_STD_ZVAL(cmd_return); MONGO_CMD(cmd_return, getThis()); zval_ptr_dtor(&data); if (EG(exception)) { zval_ptr_dtor(&cmd_return); return; } if (zend_hash_find(HASH_P(cmd_return), "ok", 3, (void**)&ok) == SUCCESS && ((Z_TYPE_PP(ok) == IS_BOOL && Z_BVAL_PP(ok)) || Z_DVAL_PP(ok) == 1)) { zend_hash_find(HASH_P(cmd_return), "was", 4, (void**)&ok); RETVAL_ZVAL(*ok, 1, 0); } else { RETVAL_NULL(); } zval_ptr_dtor(&cmd_return); }
PHP_METHOD(MongoDB, drop) { zval *data; MAKE_STD_ZVAL(data); array_init(data); add_assoc_long(data, "dropDatabase", 1); MONGO_CMD(return_value, getThis()); zval_ptr_dtor(&data); }
PHP_METHOD(MongoCollection, drop) { zval *data; mongo_collection *c; PHP_MONGO_GET_COLLECTION(getThis()); MAKE_STD_ZVAL(data); array_init(data); add_assoc_zval(data, "drop", c->name); zval_add_ref(&c->name); MONGO_CMD(return_value, c->parent); zval_ptr_dtor(&data); }
PHP_METHOD(MongoDB, drop) { zval *data; if (zend_parse_parameters_none() == FAILURE) { return; } MAKE_STD_ZVAL(data); array_init(data); add_assoc_long(data, "dropDatabase", 1); MONGO_CMD(return_value, getThis()); zval_ptr_dtor(&data); }
PHP_METHOD(MongoDB, repair) { zend_bool cloned=0, original=0; zval *data; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|bb", &cloned, &original) == FAILURE) { return; } MAKE_STD_ZVAL(data); array_init(data); add_assoc_long(data, "repairDatabase", 1); add_assoc_bool(data, "preserveClonedFilesOnFailure", cloned); add_assoc_bool(data, "backupOriginalFiles", original); MONGO_CMD(return_value, getThis()); zval_ptr_dtor(&data); }
PHP_METHOD(MongoCollection, validate) { zval *data; zend_bool scan_data = 0; mongo_collection *c; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|b", &scan_data) == FAILURE) { return; } PHP_MONGO_GET_COLLECTION(getThis()); MAKE_STD_ZVAL(data); array_init(data); add_assoc_string(data, "validate", Z_STRVAL_P(c->name), 1); add_assoc_bool(data, "full", scan_data); MONGO_CMD(return_value, c->parent); zval_ptr_dtor(&data); }
PHP_METHOD(MongoDB, createCollection) { zval *collection, *data, *temp; zend_bool capped=0; long size=0, max=0; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z|bll", &collection, &capped, &size, &max) == FAILURE) { return; } MAKE_STD_ZVAL(data); array_init(data); convert_to_string(collection); add_assoc_zval(data, "create", collection); zval_add_ref(&collection); if (size) { add_assoc_long(data, "size", size); } if (capped) { add_assoc_bool(data, "capped", 1); if (max) { add_assoc_long(data, "max", max); } } MAKE_STD_ZVAL(temp); MONGO_CMD(temp, getThis()); zval_ptr_dtor(&temp); zval_ptr_dtor(&data); if (!EG(exception)) { // get the collection we just created MONGO_METHOD1(MongoDB, selectCollection, return_value, getThis(), collection); } }