First

Dependents:   mbed-os-rest-api-V1-1 mbed-os-rest-api-V1-2 mbed-os-rest-api-V1-2-2

Revision:
0:b12dd3a065c0
Child:
1:358fcf86ddab
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/NetworkManager.h	Mon Oct 08 00:49:06 2018 +0000
@@ -0,0 +1,72 @@
+#ifndef NETWORKMANAGER_H
+#define NETWORKMANAGER_H
+
+#include "module_for_all.h"
+
+#define HTTP_STATUS_LINE "HTTP/1.0 200 OK"
+#define HTTP_HEADER_FIELDS "Content-Type: text/html; charset=utf-8"
+#define HTTP_MESSAGE_BODY ""                                     \
+"<html>" "\r\n"                                                  \
+"  <body style=\"display:flex;text-align:center\">" "\r\n"       \
+"    <div style=\"margin:auto\">" "\r\n"                         \
+"      <h1>Hello ! mbed</h1>" "\r\n"                              \
+"      <p>It works ! from mbed</p>" "\r\n"                                 \
+"    </div>" "\r\n"                                              \
+"  </body>" "\r\n"                                               \
+"</html>"
+
+#define HTTP_RESPONSE HTTP_STATUS_LINE "\r\n"   \
+                      HTTP_HEADER_FIELDS "\r\n" \
+                      "\r\n"                    \
+                      HTTP_MESSAGE_BODY "\r\n"
+
+class NetworkManager {
+public:
+    NetworkManager();
+    NetworkManager(char*, char*, char*, int);
+    
+    /* Define function */
+    void SetConfig(char*, char*, char*, int);
+    void ServerInit();
+    
+    bool OpenServer();
+    
+    bool BindPort();
+    
+    bool ListenConnections();
+    
+    bool CheckAccept();
+    
+    void AcceptEvent();
+    void SendResponseEvent(std::string);
+    
+    /* Define self function */
+    std::string getHttpMethod();
+    std::string getApiCommand();
+    std::string makeResponse(std::string);
+    
+private:
+    char*   _ip;
+    char*   _gateway;
+    char*   _mask;
+    char*   _mac;
+    int     _port;
+    
+    const char* _m_ip;
+    const char* _m_mac;
+    
+    std::vector<std::string> _recvList;
+    
+    //char  *_http_method;
+    //char  *_api_command;
+    
+    std::string _http_method;
+    std::string _api_command;
+    
+    EthernetInterface   eth;
+    TCPServer       srv;
+    TCPSocket       clt_sock;
+    SocketAddress   clt_addr;
+};
+
+#endif
\ No newline at end of file