Dirk-Willem van Gulik (NXP/mbed)
/
AmpereMeter
Example self-announcing webserver which controls a servo through a smallHTML userinterface.
RestMeterHandler.cpp
- Committer:
- dirkx
- Date:
- 2010-08-14
- Revision:
- 0:a259777c45a3
File content as of revision 0:a259777c45a3:
#include "RestMeterHandler.h" RestMeterHandler::RestMeterHandler(const char* rootPath, const char* path, TCPSocket* pTCPSocket) : HTTPRequestHandler(rootPath, path, pTCPSocket) { } RestMeterHandler::~RestMeterHandler() { } const char *(*RestMeterHandler::callback)(const char*) = NULL; void RestMeterHandler::attach(const char *(*cb)(const char * command)) { callback = cb; } void RestMeterHandler::doGet() { const char * p = path().c_str(); const char * q = strstr(p,"cmd="); if (q && q[4]) { q+=4; } else { q = "none"; }; const char * resp = "No callback"; printf("Calling back with %s, cb=%p\n\r", q,callback); if (callback) resp = (*callback)(q); setContentLen( strlen(resp) ); respHeaders()["Connection"] = "close"; writeData(resp, strlen(resp)); } void RestMeterHandler::doPost() { } void RestMeterHandler::doHead() { } void RestMeterHandler::onReadable() { //Data has been read } void RestMeterHandler::onWriteable() { //Data has been written & buf is free close(); //Data written, we can close the connection } void RestMeterHandler::onClose() { //Connection is closing //Nothing to do }