Fawkes API  Fawkes Development Version
page_reply.h
00001 
00002 /***************************************************************************
00003  *  page_reply.h - Web request reply for a normal page
00004  *
00005  *  Created: Thu Oct 23 16:13:48 2008
00006  *  Copyright  2006-2009  Tim Niemueller [www.niemueller.de]
00007  *
00008  ****************************************************************************/
00009 
00010 /*  This program is free software; you can redistribute it and/or modify
00011  *  it under the terms of the GNU General Public License as published by
00012  *  the Free Software Foundation; either version 2 of the License, or
00013  *  (at your option) any later version.
00014  *
00015  *  This program is distributed in the hope that it will be useful,
00016  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00017  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018  *  GNU Library General Public License for more details.
00019  *
00020  *  Read the full text in the LICENSE.GPL file in the doc directory.
00021  */
00022 
00023 #ifndef __LIBS_WEBVIEW_PAGE_REPLY_H_
00024 #define __LIBS_WEBVIEW_PAGE_REPLY_H_
00025 
00026 #include <webview/reply.h>
00027 
00028 namespace fawkes {
00029 #if 0 /* just to make Emacs auto-indent happy */
00030 }
00031 #endif
00032 
00033 class WebPageHeaderGenerator;
00034 class WebPageFooterGenerator;
00035 
00036 class WebPageReply : public StaticWebReply
00037 {
00038  public:
00039   WebPageReply(std::string title, std::string page = "");
00040 
00041   virtual const std::string & body();
00042   virtual std::string::size_type body_length();
00043   virtual void pack() { pack("", 0, 0); }
00044   virtual void pack(std::string active_baseurl,
00045                     WebPageHeaderGenerator *headergen,
00046                     WebPageFooterGenerator *footergen);
00047 
00048  protected:
00049   WebPageReply(response_code_t code);
00050 
00051  protected:
00052   /** Title of the page. */
00053   std::string _title;
00054 
00055  private:
00056   static const char *PAGE_HEADER;
00057   static const char *PAGE_FOOTER;
00058 
00059   std::string __merged_body;
00060 };
00061 
00062 } // end namespace fawkes
00063 
00064 #endif