mbed-os

Fork of mbed-os by erkin yucel

Revision:
0:f269e3021894
diff -r 000000000000 -r f269e3021894 features/unsupported/net/https/HTTPSClient.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/features/unsupported/net/https/HTTPSClient.h	Sun Oct 23 15:10:02 2016 +0000
@@ -0,0 +1,56 @@
+#ifndef HTTPSCLIENT_H
+#define HTTPSCLIENT_H
+
+#include "Socket/Socket.h"
+#include "Socket/Endpoint.h"
+#include "axTLS/ssl/ssl.h"
+#include "HTTPHeader.h"
+
+/**
+TCP socket connection
+*/
+class HTTPSClient : public Socket, public Endpoint {
+    
+public:
+    /** TCP socket connection
+    */
+    HTTPSClient();
+    
+    
+    virtual ~HTTPSClient();
+    
+    /** Connects this TCP socket to the server
+    \param host The host to connect to. It can either be an IP Address or a hostname that will be resolved with DNS.
+    \param port The host's port to connect to.
+    \return 0 on success, -1 on failure.
+    */
+    int connect(const char* host);
+    
+    /** Check if the socket is connected
+    \return true if connected, false otherwise.
+    */
+    bool is_connected(void);
+    
+    // Returns the size of the body
+    HTTPHeader get(char *path);
+    
+    int read(char *data, int len);
+
+
+    void close();
+    
+private:
+
+
+    int send(char* data, int length);
+    
+    uint8_t read_line();
+    HTTPHeader read_header();
+
+    bool _is_connected;
+    SSL_CTX _ssl_ctx;
+    SSL _ssl;
+    std::string _host;
+};
+
+#endif