TimeHandler test program for the HTTPServer
Dependencies: EthernetNetIf mbed HTTPServer
TimeHandler.cpp
- Committer:
- rinosh2
- Date:
- 2011-02-03
- Revision:
- 0:b37980ea1c2f
File content as of revision 0:b37980ea1c2f:
#include "TimeHandler.h" #include <time.h> #include "dbg/dbg.h" TimeHandler::TimeHandler(const char* rootPath, const char* path, TCPSocket* pTCPSocket) : HTTPRequestHandler(rootPath, path, pTCPSocket) { } TimeHandler::~TimeHandler() { DBG("Handler destroyed\r\n"); } const char* res1 = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n\ <HTML>\n\ <HEAD>\n\ <META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html;charset=Shift_JIS\">\n\ <META HTTP-EQUIV=\"Content-Script-Type\" CONTENT=\"text/javascript\">\n\ <TITLE>DiffTime</TITLE>\n\ </HEAD>\n\ <BODY>\n\ <SCRIPT LANGUAGE=\"javascript\" TYPE=\"text/javascript\">\n\ <!--\n\ var d_ini = new Date();\n\ var d_svr = new Date(\""; const char* res3 = "\");\n\ document.write(\"<FORM NAME='form1'><INPUT TYPE='text' NAME='text1' SIZE=100><br><INPUT TYPE='text' NAME='text2' SIZE=100></FORM>\");\n\ ShowDiff();\n\ function ShowDiff(){\n\ var d_pc = new Date();\n\ var d_ts = new Date(d_svr - (d_ini - d_pc));\n\ document.form1.text1.value = \"TS:\" + d_ts.toString();\n\ document.form1.text2.value = \"PC:\" + d_pc.toString() + \" (Diff:\" + Math.round((d_ini - d_svr) / 1000) + \" [sec])\";\n\ setTimeout(\"ShowDiff()\",1000);\n\ }\n\ // -->\n\ </SCRIPT>\n\ </BODY>\n\ </HTML>\n"; void setTestRTC(){ struct tm t; t.tm_year = 2011 - 1900; //109 year since 1900 t.tm_mon = 2 - 1; //9 0-11 t.tm_mday = 4; //28 1-31 t.tm_hour = 2; //11 0-23 t.tm_min = 36; //42 0-59 t.tm_sec = 0; //37 0-59 set_time(mktime(&t)); } void TimeHandler::doGet() { DBG("In TimeHandler::doGet()\r\n"); //setTestRTC(); // for diff debug time_t now = time(0); struct tm *t = localtime(&now); char res2[100]; sprintf(res2, "%04d/%02d/%02d %02d:%02d:%02d", t->tm_year + 1900, t->tm_mon + 1, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec); printf("HTTPD TimeHandler RTC=%s\n", res2); int len1 = strlen(res1); int len2 = strlen(res2); int len3 = strlen(res3); setContentLen( len1 + len2 + len3); respHeaders()["Connection"] = "close"; writeData(res1, len1); writeData(res2, len2); writeData(res3, len3); DBG("Exit TimeHandler::doGet()\r\n"); } void TimeHandler::doPost() { } void TimeHandler::doHead() { } void TimeHandler::onReadable() //Data has been read { } void TimeHandler::onWriteable() //Data has been written & buf is free { DBG("TimeHandler::onWriteable() event\r\n"); close(); //Data written, we can close the connection } void TimeHandler::onClose() //Connection is closing { //Nothing to do }