cspcontext.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include <serverconfig/serverconfig.h>
00022
00023 namespace container {
00024 namespace serverconfig {
00025
00035 CSPContext::CSPContext(Context* parent, const std::string& path, const std::string& dso, bool hidden)
00036 : ServletContext(parent, path, dso, hidden)
00037 {
00038 }
00039
00040 Context* CSPContext::contextCreator(const ConfigNode& n, Context* parent)
00041 {
00042 util::param_t::const_iterator dso = n.getAttrs().find("dso");
00043 if(dso == n.getAttrs().end())
00044 ServerConfig::fart("app=>servlets[]->dso");
00045 util::param_t::const_iterator ithidden = n.getAttrs().find("hidden");
00046 bool hidden = false;
00047 if(ithidden != n.getAttrs().end() && ithidden->second == "true")
00048 hidden = true;
00049 util::param_t::const_iterator pathit = n.getAttrs().find("path");
00050 std::string path;
00051 if(pathit != n.getAttrs().end())
00052 path = pathit->second;
00053 return new CSPContext(parent, path, dso->second, hidden);
00054 }
00055
00056 std::string CSPContext::getServletName()
00057 {
00058 std::string name = getName();
00059 std::string class_name = "CspServlet";
00060 for(std::string::size_type i=0;i<name.size();++i){
00061 if(!::isalnum(name[i]))
00062 class_name += '_';
00063 else
00064 class_name += name[i];
00065 }
00066 return class_name;
00067 }
00068
00069 }
00070 }