}
if (SUCCESS == (status = http_request_object_requesthandler(obj, getThis(), &body))) {
- zval *info = GET_PROP(obj, responseInfo);
- status = http_request_exec(obj->ch, Z_ARRVAL_P(info));
- SET_PROP(obj, responseInfo, info);
+ status = http_request_exec(obj->ch, NULL);
}
http_request_body_dtor(&body);
/* final data handling */
if (SUCCESS == status) {
- status = http_request_object_responsehandler(obj, getThis(), NULL);
+ status = http_request_object_responsehandler(obj, getThis());
}
SET_EH_NORMAL();
/* {{{ HttpRequestPool */
-/* {{{ proto void HttpRequestPool::__construct(void)
+/* {{{ proto void HttpRequestPool::__construct()
*
* Instantiate a new HttpRequestPool object.
*/
}
/* }}} */
+/* {{{ proto void HttpRequestPool::__destruct()
+ *
+ * Clean up HttpRequestPool object.
+ */
PHP_METHOD(HttpRequestPool, __destruct)
{
getObject(http_requestpool_object, obj);
-
+
+ NO_ARGS;
+
+ http_request_pool_detach_all(&obj->pool);
+}
+/* }}} */
+
+/* {{{ proto void HttpRequestPool::reset()
+ *
+ * Detach all attached HttpRequest objects.
+ */
+PHP_METHOD(HttpRequestPool, reset)
+{
+ getObject(http_requestpool_object, obj);
+
NO_ARGS;
-
- http_requestpool_object_ondestruct(&obj->pool);
+
+ http_request_pool_detach_all(&obj->pool);
}
/* {{{ proto bool HttpRequestPool::attach(HttpRequest request)
}
/* }}} */
+/* {{{ proto protected bool HttpRequestPool::socketSend()
+ *
+ * Usage:
+ * <pre>
+ * <?php
+ * while ($pool->socketSend()) {
+ * do_something_else();
+ * if (!$pool->socketSelect()) {
+ * die('Socket error');
+ * }
+ * }
+ * $pool->socketRead();
+ * ?>
+ * </pre>
+ */
+PHP_METHOD(HttpRequestPool, socketSend)
+{
+ getObject(http_requestpool_object, obj);
+
+ NO_ARGS;
+
+ RETURN_BOOL(0 < http_request_pool_perform(&obj->pool));
+}
+/* }}} */
+
+/* {{{ proto protected bool HttpRequestPool::socketSelect()
+ *
+ * See HttpRequestPool::socketSend().
+ */
+PHP_METHOD(HttpRequestPool, socketSelect)
+{
+ getObject(http_requestpool_object, obj);
+
+ NO_ARGS;
+
+ RETURN_SUCCESS(http_request_pool_select(&obj->pool));
+}
+/* }}} */
+
+/* {{{ proto protected void HttpRequestPool::socketRead()
+ *
+ * See HttpRequestPool::socketSend().
+ */
+PHP_METHOD(HttpRequestPool, socketRead)
+{
+ getObject(http_requestpool_object, obj);
+
+ NO_ARGS;
+
+ zend_llist_apply(&obj->pool.handles, (llist_apply_func_t) http_request_pool_responsehandler TSRMLS_CC);
+}
+/* }}} */
+
/* }}} */
/* }}} */