From 83120f42019feb5ff4947e9bfb22650a2339d583 Mon Sep 17 00:00:00 2001 From: "Nicolas \"Pixel\" Noble" Date: Wed, 18 Jun 2014 21:32:16 -0700 Subject: Adding a bit more curl code. --- src/CurlTask.cc | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/CurlTask.cc (limited to 'src/CurlTask.cc') diff --git a/src/CurlTask.cc b/src/CurlTask.cc new file mode 100644 index 0000000..3dce322 --- /dev/null +++ b/src/CurlTask.cc @@ -0,0 +1,27 @@ +#include "CurlTask.h" + +Balau::CurlTask::CurlTask() { + m_curlHandle = curl_easy_init(); + curl_easy_setopt(m_curlHandle, CURLOPT_WRITEFUNCTION, reinterpret_cast(writeFunctionStatic)); + curl_easy_setopt(m_curlHandle, CURLOPT_WRITEDATA, this); + curl_easy_setopt(m_curlHandle, CURLOPT_READFUNCTION, reinterpret_cast(readFunctionStatic)); + curl_easy_setopt(m_curlHandle, CURLOPT_READDATA, this); + curl_easy_setopt(m_curlHandle, CURLOPT_DEBUGFUNCTION, reinterpret_cast(debugFunctionStatic)); + curl_easy_setopt(m_curlHandle, CURLOPT_DEBUGDATA, this); +} + +size_t Balau::CurlTask::writeFunctionStatic(char * ptr, size_t size, size_t nmemb, void * userdata) { + CurlTask * curlTask = (CurlTask *) userdata; + return curlTask->writeFunction(ptr, size, nmemb); +} + +size_t Balau::CurlTask::readFunctionStatic(void * ptr, size_t size, size_t nmemb, void * userdata) { + CurlTask * curlTask = (CurlTask *) userdata; + return curlTask->readFunction(ptr, size, nmemb); +} + +int Balau::CurlTask::debugFunctionStatic(CURL * easy, curl_infotype info, char * str, size_t str_len, void * userdata) { + CurlTask * curlTask = (CurlTask *) userdata; + IAssert(easy == curlTask->m_curlHandle, "Got a debug callback for a handle that isn't our own."); + return curlTask->debugFunction(info, str, str_len); +} -- cgit v1.2.3