Skip to content
Snippets Groups Projects
casupcurl.h 1.05 KiB
Newer Older
Giacomo Strangolino's avatar
Giacomo Strangolino committed
#ifndef CASUPCURL_H
#define CASUPCURL_H

#include <string>
#include <curl/curl.h>
#include <vector>
#include <map>

class CaSupCurlPrivate;
class CaSupCurl;

class CaSupCurlWriteFuncData {
public:
    CaSupCurlWriteFuncData(const std::string& _chan) {
		chan = _chan;
	}

	std::string chan;
	int su_cnt;
};

class CaSupCurl
{
public:
	CaSupCurl(const std::string &url, bool ssl_verifypeer);
	virtual ~CaSupCurl();

    std::map<std::string, std::string> xmit(const std::map<std::string, std::string> &datamap);

	static size_t write_callback(char *ptr, size_t size, size_t nmemb, void *userdata);

	static int socket_callback(CURL *easy,      /* easy handle */
	                           curl_socket_t s, /* socket */
	                           int what,        /* what to wait for */
	                           void *userp,     /* private callback pointer */
	                           void *socketp);
	static int start_timeout(CURLM *multi, long timeout_ms, void *userp);
    const std::string& response() const;

private:
	CaSupCurlPrivate *d;
};

#endif // CASUPCURL_H