2014-01-17 23:47:14 +01:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <mongoose.h>
|
|
|
|
#include "StaticFileHandler.H"
|
|
|
|
|
|
|
|
class Routerin
|
|
|
|
{
|
2014-01-23 02:22:06 +01:00
|
|
|
public:
|
2014-01-18 14:48:52 +01:00
|
|
|
//Routerin(StaticFileHandler &sfh);
|
2014-01-17 23:47:14 +01:00
|
|
|
|
2014-01-23 02:22:06 +01:00
|
|
|
~Routerin();
|
|
|
|
// const ???
|
|
|
|
static Routerin * get_instance()
|
|
|
|
{
|
|
|
|
static Routerin * me;
|
|
|
|
if ( ! me->hasInstance )
|
|
|
|
return me = new Routerin();
|
|
|
|
return me;
|
|
|
|
}
|
|
|
|
|
|
|
|
static int event_route(struct mg_event *event)
|
|
|
|
{
|
|
|
|
// Foohash fh;
|
|
|
|
Routerin *rouri = Routerin::get_instance();
|
|
|
|
switch (event->type) {
|
|
|
|
case MG_REQUEST_BEGIN:
|
|
|
|
return rouri->event_request_route(event);
|
|
|
|
case MG_THREAD_BEGIN:
|
|
|
|
return rouri->event_newthread_route(event);
|
|
|
|
case MG_REQUEST_END:
|
|
|
|
return rouri->event_requend_route(event);
|
|
|
|
case MG_HTTP_ERROR:
|
|
|
|
case MG_EVENT_LOG:
|
|
|
|
case MG_THREAD_END:
|
|
|
|
default:
|
|
|
|
return rouri->event_fallback_route(event);
|
|
|
|
}
|
|
|
|
}
|
2014-01-17 23:47:14 +01:00
|
|
|
private:
|
2014-01-23 02:22:06 +01:00
|
|
|
explicit Routerin();
|
2014-01-17 23:47:14 +01:00
|
|
|
StaticFileHandler sfh;
|
2014-01-23 02:22:06 +01:00
|
|
|
bool hasInstance = false;
|
2014-01-17 23:47:14 +01:00
|
|
|
|
|
|
|
int event_request_route ( struct mg_event *event);
|
|
|
|
int event_newthread_route ( struct mg_event *event);
|
|
|
|
int event_fallback_route ( struct mg_event *event);
|
|
|
|
int event_requend_route ( struct mg_event *event);
|
|
|
|
|
|
|
|
int rq_static(char const * const restrstr , struct mg_event *event);
|
|
|
|
int rq_file(char const * const reststr , struct mg_event *event);
|
|
|
|
int rq_date(char const * const reststr , struct mg_event *event);
|
|
|
|
int rq_upload(char const * const reststr , struct mg_event *event);
|
|
|
|
|
|
|
|
};
|