page_reply.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef __PLUGINS_WEBVIEW_PAGE_REPLY_H_
00024 #define __PLUGINS_WEBVIEW_PAGE_REPLY_H_
00025
00026 #include "reply.h"
00027 #include "service_browse_handler.h"
00028
00029 class WebviewThread;
00030 class WebviewServiceBrowseHandler;
00031
00032 class WebPageReply : public StaticWebReply
00033 {
00034 friend class WebRequestDispatcher;
00035 friend class WebviewThread;
00036 public:
00037 WebPageReply(std::string title, std::string page = "");
00038
00039 static std::string html_header(std::string &title);
00040 static std::string html_footer();
00041
00042 virtual const std::string & body();
00043 virtual std::string::size_type body_length();
00044 virtual void pack();
00045
00046 protected:
00047 WebPageReply(response_code_t code);
00048
00049 protected:
00050
00051 std::string _title;
00052
00053 private:
00054 static void add_nav_entry(std::string baseurl, std::string name);
00055 static void remove_nav_entry(std::string baseurl);
00056 static void set_active_baseurl(std::string baseurl);
00057
00058 static void set_service_browse_handler(WebviewServiceBrowseHandler *service_browse_handler);
00059
00060 private:
00061 static const char *PAGE_HEADER;
00062 static const char *PAGE_FOOTER;
00063
00064 std::string __merged_body;
00065
00066 static std::map<std::string, std::string> __nav_entries;
00067 static std::string __current_baseurl;
00068
00069 static WebviewServiceBrowseHandler *__service_browser;
00070 };
00071
00072 #endif