Dependents:   SimpleLCDClock readCard2Twitter_http AnalogClock_StepperMotor_NTP ServoCamV1

services/http/util/url.h

Committer:
donatien
Date:
2010-05-24
Revision:
0:a2dd0ba6cd2d
Child:
1:7043cc0db03c

File content as of revision 0:a2dd0ba6cd2d:

#ifndef URL_H
#define URL_H

#include "if/net/ipaddr.h"

#include <string>
using std::string;

#include "mbed.h"

#ifdef __cplusplus
extern "C" {
#endif

char *url_encode(char *str);
char *url_decode(char *str);

#ifdef __cplusplus
}
#endif

class Url
{
public:
  static string encode(const string& url)
  {
    char* c_res = url_encode( (char*) url.c_str() );
    string res(c_res);
    free(c_res); //Alloc'ed in url_encode()
    return res;
  }
  
  static string decode(const string& url)
  {
    char* c_res = url_decode( (char*) url.c_str() );
    string res(c_res);
    free(c_res); //Alloc'ed in url_decode()
    return res;
  }
  
  Url();

  string getProtocol();
  string getHost();
  bool getHostIp(IpAddr* ip); //If host is in IP form, return true & proper object by ptr
  uint16_t getPort();
  string getPath();
  
  void setProtocol(string protocol);
  void setHost(string host);
  void setPort(uint16_t port);
  void setPath(string path);
  
  void fromString(string str);
  string toString();

private:
  string m_protocol;
  string m_host;
  uint16_t m_port;
  string m_path;
  
};

#endif /* LWIP_UTILS_H */