user event loop support for the curl client
[m6w6/ext-http] / src / php_http_client_curl_user.h
diff --git a/src/php_http_client_curl_user.h b/src/php_http_client_curl_user.h
new file mode 100644 (file)
index 0000000..8a6778f
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+    +--------------------------------------------------------------------+
+    | PECL :: http                                                       |
+    +--------------------------------------------------------------------+
+    | Redistribution and use in source and binary forms, with or without |
+    | modification, are permitted provided that the conditions mentioned |
+    | in the accompanying LICENSE file are met.                          |
+    +--------------------------------------------------------------------+
+    | Copyright (c) 2004-2014, Michael Wallner <mike@php.net>            |
+    +--------------------------------------------------------------------+
+*/
+
+#if PHP_HTTP_HAVE_CURL
+
+PHP_HTTP_API zend_class_entry *php_http_client_curl_user_class_entry;
+PHP_HTTP_API php_http_client_curl_ops_t *php_http_client_curl_user_ops_get();
+PHP_MINIT_FUNCTION(http_client_curl_user);
+
+#endif
+
+#if 0
+<?php
+
+interface http\Client\Curl\User
+{
+       const POLL_NONE = 0;
+       const POLL_IN = 1;
+       const POLL_OUT = 2;
+       const POLL_INOUT = 3;
+       const POLL_REMOVE = 4;
+
+       /**
+        * Initialize the loop
+        *
+        * The callback should be run when:
+        *  - timeout occurs
+        *  - a watched socket needs action
+        *
+        * @param callable $run callback as function(http\Client $client, resource $socket = null, int $action = http\Client\Curl\User::POLL_NONE)
+        */
+       function init(callable $run);
+
+       /**
+        * Register a timeout watcher
+        * @param int $timeout_ms desired timeout with milliseconds resolution
+        */
+       function timer(int $timeout_ms);
+
+       /**
+        * (Un-)Register a socket watcher
+        * @param resource $socket the fd to watch
+        * @param int $poll http\Client\Curl\Loop::POLL_* constant
+        */
+       function socket($socket, int $poll);
+
+       /**
+        * Run the loop as long as it does not block
+        *
+        * Called by http\Client::once()
+        */
+       function once();
+
+       /**
+        * Wait/poll/select (block the loop) until events fire
+        *
+        * Called by http\Client::wait()
+        *
+        * @param int $timeout_ms block for maximal $timeout_ms milliseconds
+        */
+       function wait(int $timeout_ms = null);
+
+       /**
+        * Run the loop
+        *
+        * Called by http\Client::send() while there are unfinished requests and
+        * no exception has occurred
+        */
+       function send();
+}
+#endif
+
+/*
+ * Local variables:
+ * tab-width: 4
+ * c-basic-offset: 4
+ * End:
+ * vim600: noet sw=4 ts=4 fdm=marker
+ * vim<600: noet sw=4 ts=4
+ */