Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: NyFileSystems libMiMic mbed-rtos mbed
Fork of MiMicSimpleHttpd by
main.cpp
- Committer:
- nyatla
- Date:
- 2013-11-16
- Revision:
- 8:384c8fb9f401
- Parent:
- 7:8d030ae8ddc3
- Child:
- 9:c6427be12f0d
File content as of revision 8:384c8fb9f401:
#include "mimic.h"
#include "rtos.h"
/**
* @file
* This program is a sample which starts httpd by a subtask.
* The value counted up by a main thread is returned by Httpd of a subtask.
*/
static unsigned int counter=0;
LocalFileSystem2 lf("local");
class SimpleHttpd:public MiMic::Httpd
{
private:
ModUrl modurl; //basic URL parser
public:
SimpleHttpd(NetConfig& i_cfg):Httpd(i_cfg.getHttpPort())
{
}
virtual void onRequest(HttpdConnection& i_connection)
{
char url[32];
int method;
unsigned int v;
i_connection.lockHttpd();
v=counter;
i_connection.unlockHttpd();
//call ModUrl module.
if(this->modurl.execute(i_connection,url,32,&method)){
//send 200 OK and requested URL
i_connection.sendHeader(200,"text/html",NULL);
//show current counter value.
i_connection.sendBodyF(
"<html><body><h1>Asynchronous test</h1><div>Counter: %u</body></html>",v);
return;
}
return;
}
};
NetConfig cfg; //create network configulation
int main()
{
Net net; //create a net instance.
//try to override setting by local file.
cfg.loadFromFile("/local/mimic.cfg");
SimpleHttpd httpd(cfg); //create a httpd instance.
net.start(cfg);
httpd.loopTask(); //start httpd loop with new task
for(;;){
httpd.lock();//prepare to access shared resource
counter++;
httpd.unlock();//release a lock.
Thread::wait(1000);
}
return 0;
}
