+/* {{{ proto int HttpRequestPool::count()
+ Implements Countable::count(). */
+PHP_METHOD(HttpRequestPool, count)
+{
+ NO_ARGS {
+ getObject(http_requestpool_object, obj);
+ RETURN_LONG((long) zend_llist_count(&obj->pool.handles));
+ }
+}
+/* }}} */
+
+/* {{{ proto array HttpRequestPool::getAttachedRequests()
+ Get attached HttpRequest objects. */
+PHP_METHOD(HttpRequestPool, getAttachedRequests)
+{
+ getObject(http_requestpool_object, obj);
+
+ NO_ARGS;
+
+ array_init(return_value);
+ zend_llist_apply_with_argument(&obj->pool.handles,
+ (llist_apply_with_arg_func_t) http_requestpool_object_llist2array,
+ return_value TSRMLS_CC);
+}
+/* }}} */
+
+/* {{{ proto array HttpRequestPool::getFinishedRequests()
+ Get attached HttpRequest objects that already have finished their work. */
+PHP_METHOD(HttpRequestPool, getFinishedRequests)
+{
+ getObject(http_requestpool_object, obj);
+
+ NO_ARGS;
+
+ array_init(return_value);
+ zend_llist_apply_with_argument(&obj->pool.finished,
+ (llist_apply_with_arg_func_t) http_requestpool_object_llist2array,
+ return_value TSRMLS_CC);
+}
+/* }}} */
+
+/* {{{ proto bool HttpRequest::enablePiplelinig([bool enable = true])
+ Enables pipelining support for all attached requests if support in libcurl is given. */
+PHP_METHOD(HttpRequestPool, enablePipelining)
+{
+ zend_bool enable = 1;
+ getObject(http_requestpool_object, obj);
+
+ if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|b", &enable)) {
+ RETURN_FALSE;
+ }
+#if defined(HAVE_CURL_MULTI_SETOPT) && HTTP_CURL_VERSION(7,16,0)
+ if (CURLM_OK == curl_multi_setopt(obj->pool.ch, CURLMOPT_PIPELINING, (long) enable)) {
+ RETURN_TRUE;
+ }
+#endif
+ RETURN_FALSE;
+}
+/* }}} */
+