From e3c2cf74256daf8131f39631d349a9fa9cacacc2 Mon Sep 17 00:00:00 2001 From: "Nicolas \"Pixel\" Noble" Date: Wed, 18 Jun 2014 17:33:35 -0700 Subject: 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. --- includes/CurlTask.h | 15 +++++++++++++++ includes/LuaTask.h | 3 +-- includes/TaskMan.h | 9 +++++++-- includes/c++11-surrogates.h | 21 --------------------- 4 files changed, 23 insertions(+), 25 deletions(-) create mode 100644 includes/CurlTask.h delete mode 100644 includes/c++11-surrogates.h (limited to 'includes') 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 +#include +#include + +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 #include #include #include @@ -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 struct RemoveReference { - typedef T type; -}; - -template struct RemoveReference { - typedef T type; -}; - -template struct RemoveReference { - typedef T type; -}; - -template typename RemoveReference::type&& Move(T&& t) { - return static_cast::type&&>(t); -} - -}; -- cgit v1.2.3