[webtools] Header fixed about User-Agent
[scilab.git] / scilab / modules / webtools / src / cpp / sciCurl.hxx
1 /*
2  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  *
4  *  Copyright (C) 2017 - ESI-Group - Cedric DELAMARRE
5  *
6  * This file is hereby licensed under the terms of the GNU GPL v2.0,
7  * pursuant to article 5.3.4 of the CeCILL v.2.1.
8  * This file was originally licensed under the terms of the CeCILL v2.1,
9  * and continues to be available under such terms.
10  * For more information, see the COPYING file which you should have received
11  * along with this program.
12  *
13  */
14
15 #ifndef __SCICURL_HXX__
16 #define __SCICURL_HXX__
17
18 #include <curl/curl.h>
19 #include <sys/stat.h>
20
21 #include "internal.hxx"
22
23 extern "C"
24 {
25 #include "dynlib_webtools.h"
26 }
27
28 class WEBTOOLS_IMPEXP SciCurl
29 {
30 public:
31     static SciCurl* getInstance(void);
32     static void destroyInstance(void);
33
34     void getResultAsObject(CURL* curl);
35     void getResultAsFile(CURL* curl, FILE* fd);
36     int setProxy(CURL* curl);
37     void setCommonHeaders(CURL* curl);
38
39     types::InternalType* getResult(void);
40     void clear(void);
41
42     static int write_result(char* pcInput, size_t size, size_t nmemb, void* output);
43
44 private:
45     SciCurl();
46     ~SciCurl();
47
48     static SciCurl* me;
49     static std::string data;
50     static bool useFile;
51 };
52
53 #endif /* !__SCICURL_HXX__ */