dancing arround class stuff. virtual interface cleaned

This commit is contained in:
john stone 2014-01-25 17:47:37 +01:00
parent 48f43be792
commit 7b64cb5b76
9 changed files with 108 additions and 100 deletions

View File

@ -15,7 +15,9 @@ InputMemoryFile::InputMemoryFile(const char *pathname):
struct stat sbuf;
if (::fstat(file_handle_, &sbuf) == -1) return;
data_ = static_cast<const char*>(::mmap(
0, sbuf.st_size, PROT_READ, MAP_SHARED, file_handle_, 0));
0, sbuf.st_size,
PROT_READ, MAP_SHARED,
file_handle_, 0));
if (data_ == MAP_FAILED) data_ = 0;
else size_ = sbuf.st_size;
}

View File

@ -8,5 +8,7 @@ class MediocreSimpleStaticFileHandler :public StaticFileHandler
public:
int answer_pathreq(const char * const path, struct mg_connection *conn);
std::string cleanpath(const char * const);
MediocreSimpleStaticFileHandler() {};
~MediocreSimpleStaticFileHandler() {};
};

View File

@ -1,11 +1,14 @@
#include "MediocreSimpleStaticFileHandler.H"
std::string MediocreSimpleStaticFileHandler::cleanpath (const char * const path){
std::string
MediocreSimpleStaticFileHandler::cleanpath (const char * const path)
{
//adds no security at all
return std::string(path);
}
int MediocreSimpleStaticFileHandler::answer_pathreq(const char * const path,
int
MediocreSimpleStaticFileHandler::answer_pathreq(const char * const path,
struct mg_connection *conn)
{
mg_send_file(conn,cleanpath(path).c_str());

View File

@ -38,7 +38,7 @@ public:
}
private:
explicit Routerin();
StaticFileHandler sfh;
StaticFileHandler && sfh;
bool hasInstance = false;
int event_request_route ( struct mg_event *event);

View File

@ -6,6 +6,7 @@ using std::strcmp;
#include "Foohash.H"
#include "Routerin.H"
#include "StaticFileHandler.H"
#include "UltraSimpleStaticFileHandler.H"
using std::cout;
@ -90,32 +91,34 @@ int Routerin::rq_static(char const * const reststr , struct mg_event *event)
int Routerin::rq_file(char const * const reststr , struct mg_event *event)
int Routerin::rq_file(char const * const reststr ,
struct mg_event *event __attribute__((unused)))
{
std::cerr << " a dynamic file is reqested!" << endl;
std::cerr << " path: " << reststr << endl;
return 1;
}
int Routerin::rq_date(char const * const reststr , struct mg_event *event)
int Routerin::rq_date(char const * const reststr __attribute__((unused)),
struct mg_event *event __attribute__((unused)) )
{
std::cerr << "requested filelist ordered by date!" << endl ;
return 1;
}
int Routerin::rq_upload(char const * const reststr, struct mg_event *event)
int Routerin::rq_upload(char const * const reststr __attribute__((unused)),
struct mg_event *event __attribute__((unused)))
{
std::cerr << "here we will get uploadish!" << endl ;
return 1;
}
int Routerin::event_requend_route(struct mg_event *event){
int Routerin::event_requend_route(struct mg_event *event __attribute__((unused)) ){
std::cerr << "ended request" <<endl;
return 1;
}
int Routerin::event_fallback_route(struct mg_event *event){
int Routerin::event_fallback_route(struct mg_event *event __attribute__((unused)) ){
//DEBUG CODE
std::cerr << "Got an unhandled mg_event" << endl;
std::cerr << "Its type is: " << event->type << endl;
@ -123,7 +126,7 @@ int Routerin::event_fallback_route(struct mg_event *event){
}
int Routerin::event_newthread_route(struct mg_event *event){
int Routerin::event_newthread_route(struct mg_event *event __attribute__((unused)) ){
//DEBUG CODE
std::cerr << "Started new thread!" <<endl;
return 1;

View File

@ -4,7 +4,6 @@
class StaticFileHandler
{
public:
virtual ~StaticFileHandler() {};
virtual int answer_pathreq(const char * const path,struct mg_connection *conn) {};
virtual int answer_pathreq(const char * const path,struct mg_connection *conn)=0;
};

View File

@ -4,8 +4,8 @@
class UltraSimpleStaticFileHandler :public StaticFileHandler
{
public:
~UltraSimpleStaticFileHandler();
int answer_pathreq(const char * const path, struct mg_connection *conn);
virtual ~UltraSimpleStaticFileHandler();
virtual int answer_pathreq(const char * const path, struct mg_connection *conn) override;
};

View File

@ -22,14 +22,14 @@ static const char * hello_world_html = u8R"HERE(
</body>
</html>)HERE";
UltraSimpleStaticFileHandler::~UltraSimpleStaticFileHandler() {}
UltraSimpleStaticFileHandler::~UltraSimpleStaticFileHandler(){};
int
UltraSimpleStaticFileHandler::answer_pathreq(const char * const path,
int UltraSimpleStaticFileHandler::answer_pathreq(const char * const path,
struct mg_connection *conn)
{
mg_printf(conn, "HTTP/1.0 200 OK\r\n"
"Content-Length: %d\r\n"
"Content-Length: %lu\r\n"
"Content-Type: text/html\r\n\r\n%s",
sizeof(hello_world_html),
hello_world_html);

View File

@ -109,7 +109,6 @@ int main(int argc, char **argv)
std::cerr << "ERROR ERROR BEEP" << std::endl;
exit(1);
}
#ifdef DEBUG
dump_args();
#endif