summaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
authorNicolas "Pixel" Noble <pixel@nobis-crew.org>2014-06-18 17:33:35 -0700
committerNicolas "Pixel" Noble <pixel@nobis-crew.org>2014-06-18 17:33:35 -0700
commite3c2cf74256daf8131f39631d349a9fa9cacacc2 (patch)
treecb6c1626f3e6ceea3e7d321cc754d43a99e9add0 /includes
parentc8894935485859b4f14dbf8be9d087e1d7399980 (diff)
Adding basic CurlTask, as well as support for it in Balau. Also removing c++11-surrogates.h, as we're on a modern compiler now.
Diffstat (limited to 'includes')
-rw-r--r--includes/CurlTask.h15
-rw-r--r--includes/LuaTask.h3
-rw-r--r--includes/TaskMan.h9
-rw-r--r--includes/c++11-surrogates.h21
4 files changed, 23 insertions, 25 deletions
diff --git a/includes/CurlTask.h b/includes/CurlTask.h
new file mode 100644
index 0000000..f9ac492
--- /dev/null
+++ b/includes/CurlTask.h
@@ -0,0 +1,15 @@
+#pragma once
+
+#include <curl/curl.h>
+#include <Task.h>
+#include <TaskMan.h>
+
+namespace Balau {
+
+class CurlTask : public Task {
+ friend class TaskMan;
+ protected:
+ CURL * m_curlHandle;
+};
+
+};
diff --git a/includes/LuaTask.h b/includes/LuaTask.h
index a12f89f..e3dfe1c 100644
--- a/includes/LuaTask.h
+++ b/includes/LuaTask.h
@@ -1,6 +1,5 @@
#pragma once
-#include <c++11-surrogates.h>
#include <BLua.h>
#include <Task.h>
#include <StacklessTask.h>
@@ -58,7 +57,7 @@ class LuaTask : public Task {
~LuaTask() { L.weaken(); }
virtual const char * getName() const { return "LuaTask"; }
private:
- LuaTask(Lua && __L, LuaExecCell * cell) : L(Move(__L)), m_cell(cell) { if (!cell->needsStack()) setStackless(); }
+ LuaTask(Lua && __L, LuaExecCell * cell) : L(std::move(__L)), m_cell(cell) { if (!cell->needsStack()) setStackless(); }
virtual void Do();
Lua L;
LuaExecCell * m_cell;
diff --git a/includes/TaskMan.h b/includes/TaskMan.h
index a9eb490..a51653b 100644
--- a/includes/TaskMan.h
+++ b/includes/TaskMan.h
@@ -103,10 +103,15 @@ class TaskMan {
int m_stopCode = 0;
bool m_stopped = false;
bool m_allowedToSignal = false;
+ ev::timer m_curlTimer;
CURLM * m_curlMulti = false;
int m_curlStillRunning = 0;
- static int curlSocketCallback(CURL * easy, curl_socket_t s, int what, void * userp, void * socketp);
- static int curlMultiTimerCallback(CURLM * multi, long timeout_ms, void * userp);
+ static int curlSocketCallbackStatic(CURL * easy, curl_socket_t s, int what, void * userp, void * socketp);
+ int curlSocketCallback(CURL * easy, curl_socket_t s, int what, void * socketp);
+ void curlSocketEventCallback(ev::io & w, int revents);
+ static int curlMultiTimerCallbackStatic(CURLM * multi, long timeout_ms, void * userp);
+ int curlMultiTimerCallback(CURLM * multi, long timeout_ms);
+ void curlMultiTimerEventCallback(ev::timer & w, int revents);
TaskMan(const TaskMan &) = delete;
TaskMan & operator=(const TaskMan &) = delete;
diff --git a/includes/c++11-surrogates.h b/includes/c++11-surrogates.h
deleted file mode 100644
index 4f3a1a0..0000000
--- a/includes/c++11-surrogates.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#pragma once
-
-namespace Balau {
-
-template <typename T> struct RemoveReference {
- typedef T type;
-};
-
-template <typename T> struct RemoveReference<T&> {
- typedef T type;
-};
-
-template <typename T> struct RemoveReference<T&&> {
- typedef T type;
-};
-
-template <typename T> typename RemoveReference<T>::type&& Move(T&& t) {
- return static_cast<typename RemoveReference<T>::type&&>(t);
-}
-
-};