#include <limits.h>
#include <math.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <sys/types.h>
#include <regex.h>
#include <curl/curl.h>
#include <iostream.h>
#include <string.h>

using namespace std;

class HttpRequest
{

   public:

   bool start;
   //bool html;
   CURL *curl;
   int status_code;
   char error_buffer[CURL_ERROR_SIZE];

   ~HttpRequest(){};
   static HttpRequest* instance();
   void init(void);
   static size_t data_callback(void *ptr, size_t size, size_t nmemb, void *stream);
   static size_t header_callback(char *ptr, size_t msize, size_t nmemb, void *stream);
   void check_status_line(const char *s);
   void die(const char *error);
   void check_header(const char *name, const char *value);
   bool parse_date(const char *s, struct tm *tm);
   int month(const char *s);
   time_t mktime_from_utc(struct tm *t);
   const char *skip_lws(const char *s);
   bool parse_list(const char *s, regex_t *preg, unsigned int n, unsigned int m,
                   void (*callback)(const char *s, regmatch_t pmatch[]));

   bool cleanup();
   void check_url(const char *url);
   bool setMsisdn(char * Number);
   string getMsisdn();
 
   private:

   static HttpRequest* htt;
   HttpRequest();
   string Msisdn;
};

