web_application.h

00001 /*
00002  * web_application.h
00003  * This file is part of dbPager Classes Library (DCL)
00004  *
00005  * Copyright (c) 2008 Dennis Prochko <wolfsoft@mail.ru>
00006  *
00007  * DCL is free software; you can redistribute it and/or modify
00008  * it under the terms of the GNU General Public License as published by
00009  * the Free Software Foundation version 3.
00010  *
00011  * DCL is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014  * GNU General Public License for more details.
00015  *
00016  * You should have received a copy of the GNU General Public License
00017  * along with DCL; if not, write to the Free Software
00018  * Foundation, Inc., 51 Franklin St, Fifth Floor,
00019  * Boston, MA  02110-1301  USA
00020  */
00021 
00022 #ifndef _WEB_APPLICATION_H_
00023 #define _WEB_APPLICATION_H_
00024 
00025 #include <dcl/delegate.h>
00026 #include <dcl/exception.h>
00027 #include <dcl/http_header.h>
00028 
00029 namespace dbp {
00030 
00032 
00039 class web_application_int {
00040 public:
00042         typedef delegate2<const std::exception&, http_response&, void>
00043           on_exception_handler;
00045         typedef delegate1<const http_request&, http_response> on_request_handler;
00047 
00065         virtual void on_handle_request(on_request_handler handler) = 0;
00067 
00074         virtual void on_exception(on_exception_handler handler) = 0;
00075 protected:
00076         virtual http_request get_request() = 0;
00077         virtual void send_response(const http_response&) = 0;
00078 };
00079 
00080 } //namespace
00081 
00082 #endif /*_WEB_APPLICATION_H_*/

 
Support This Project
SourceForge.net Logo