ecore: Add pipelining support for HTTP 1.1.
authorcedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 1 Apr 2011 16:37:55 +0000 (16:37 +0000)
committercedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 1 Apr 2011 16:37:55 +0000 (16:37 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/ecore@58265 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

ChangeLog
src/lib/ecore_con/Ecore_Con.h
src/lib/ecore_con/ecore_con_url.c

index d0daefd..31f5fe1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
         * Ecore_X gains some more x sync counter controls and Ecore_Evas
         now uses the netwm sync protocol to get wm's to only configure
         as fast as it can keep drawing.
+
+2011-04-01  Cedric Bail
+
+       * Add ecore_con_url_pipeline_set and ecore_con_url_pipeline_get for HTTP 1.1
+       pipelining support.
index 692d6c5..60c3eba 100644 (file)
@@ -525,6 +525,10 @@ typedef enum _Ecore_Con_Url_Time
 
 EAPI int               ecore_con_url_init(void);
 EAPI int               ecore_con_url_shutdown(void);
+
+EAPI void              ecore_con_url_pipeline_set(Eina_Bool enable);
+EAPI Eina_Bool         ecore_con_url_pipeline_get(void);
+
 EAPI Ecore_Con_Url *   ecore_con_url_new(const char *url);
 EAPI Ecore_Con_Url *   ecore_con_url_custom_new(const char *url,
                                                 const char *custom_request);
index 5df6d98..04b3227 100644 (file)
@@ -96,6 +96,7 @@ static CURLM *_curlm = NULL;
 static fd_set _current_fd_set;
 static int _init_count = 0;
 static Ecore_Timer *_curl_timeout = NULL;
+static Eina_Bool pipelining = EINA_FALSE;
 
 typedef struct _Ecore_Con_Url_Event Ecore_Con_Url_Event;
 struct _Ecore_Con_Url_Event
@@ -242,6 +243,35 @@ ecore_con_url_shutdown(void)
 }
 
 /**
+ * Enable or disable HTTP 1.1 pipelining.
+ * @param enable EINA_TRUE will turn it on, EINA_FALSE will disable it.
+ */
+EAPI void
+ecore_con_url_pipeline_set(Eina_Bool enable)
+{
+#ifdef HAVE_CURL
+  if (enable)
+    curl_multi_setopt(_curlm, CURLMOPT_PIPELINING, 1);
+  else
+    curl_multi_setopt(_curlm, CURLMOPT_PIPELINING, 1);
+  pipelining = enable;
+#endif
+}
+
+/**
+ * Is HTTP 1.1 pipelining enable ?
+ * @return EINA_TRUE if it is enable.
+ */
+EAPI Eina_Bool
+ecore_con_url_pipeline_get(void)
+{
+#ifdef HAVE_CURL
+  return pipelining;
+#endif
+  return EINA_FALSE;
+}
+
+/**
  * Creates and initializes a new Ecore_Con_Url connection object.
  *
  * Creates and initializes a new Ecore_Con_Url connection object that can be