/* FTP File YM plugin Copyright (C) 2007-2010 Jan Holub This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 2 of the License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #pragma once #include "common.h" class LibCurl { private: typedef CURL *PCURL; typedef struct curl_slist *PCURL_SLIST; typedef curl_version_info_data *PVERSION_INFO; typedef CURLcode (__cdecl * _curl_global_init) (long); typedef void (__cdecl * _curl_global_cleanup) (void); typedef PCURL (__cdecl * _curl_easy_init) (void); typedef void (__cdecl * _curl_easy_cleanup) (PCURL); typedef CURLcode (__cdecl * _curl_easy_perform) (PCURL); typedef CURLcode (__cdecl * _curl_easy_pause) (PCURL,int); typedef CURLcode (__cdecl * _curl_easy_setopt) (PCURL,CURLoption,...); typedef PCURL_SLIST (__cdecl * _curl_slist_append) (PCURL_SLIST,LPCSTR); typedef void (__cdecl * _curl_slist_free_all) (PCURL_SLIST); typedef PVERSION_INFO (__cdecl * _curl_version_info) (CURLversion); static LibCurl *instance; LibCurl() { }; ~LibCurl() { instance = NULL; }; public: _curl_global_init global_init; _curl_global_cleanup global_cleanup; _curl_easy_init easy_init; _curl_easy_cleanup easy_cleanup; _curl_easy_perform easy_perform; _curl_easy_pause easy_pause; _curl_easy_setopt easy_setopt; _curl_slist_append slist_append; _curl_slist_free_all slist_free_all; _curl_version_info version_info; static LibCurl &getInstance() { if (!instance) instance = new LibCurl(); return *instance; }; BOOL init(); void deinit(); };