8 #include "xgi/Method.h"
11 #include "cgicc/Cgicc.h"
12 #include "cgicc/FormEntry.h"
13 #include "cgicc/HTMLClasses.h"
18 #include "boost/tokenizer.hpp"
26 const std::string ExceptionGenerator::menu[menu_items] =
27 {
"Sleep x ms",
"SleepForever",
"Cms Exception",
"Exit with error",
"Abort",
"Unknown Exception",
"Endless loop",
"Generate Error Message",
"Segfault",
32 actionId_(pset.getUntrackedParameter<int>(
"defaultAction",-1)),
33 intqualifier_(pset.getUntrackedParameter<int>(
"defaultQualifier",0)),
34 actionRequired_(actionId_!=-1)
73 while(1){ind+=
step;
if(ind>1000000) step = -1;
if(ind==0) step = 1;}
104 cgicc::Cgicc cgi(in);
105 if ( xgi::Utils::hasFormElement(cgi,
"exceptiontype") )
107 actionId_ = xgi::Utils::getFormElement(cgi,
"exceptiontype")->getIntegerValue();
108 qualifier_ = xgi::Utils::getFormElement(cgi,
"qualifier")->getValue();
109 intqualifier_ = xgi::Utils::getFormElement(cgi,
"qualifier")->getIntegerValue();
112 if ( xgi::Utils::hasFormElement(cgi,
"module") )
113 mname = xgi::Utils::getFormElement(cgi,
"module")->getValue();
114 cgicc::CgiEnvironment cgie(in);
117 path = cgie.getPathInfo();
118 query = cgie.getQueryString();
130 *out <<
"<html>" << endl;
131 *out <<
"<head>" << endl;
134 *out <<
"<STYLE type=\"text/css\"> #T1 {border-width: 2px; border: solid blue; text-align: center} </STYLE> " << endl;
135 *out <<
"<link type=\"text/css\" rel=\"stylesheet\"";
136 *out <<
" href=\"/" << urn
137 <<
"/styles.css\"/>" << endl;
140 <<
" MAIN</title>" << endl;
142 *out <<
"</head>" << endl;
143 *out <<
"<body onload=\"loadXMLDoc()\">" << endl;
144 *out <<
"<table border=\"0\" width=\"100%\">" << endl;
145 *out <<
"<tr>" << endl;
146 *out <<
" <td align=\"left\">" << endl;
147 *out <<
" <img" << endl;
148 *out <<
" align=\"middle\"" << endl;
149 *out <<
" src=\"/evf/images/systemerror.jpg\"" << endl;
150 *out <<
" alt=\"main\"" << endl;
151 *out <<
" width=\"90\"" << endl;
152 *out <<
" height=\"64\"" << endl;
153 *out <<
" border=\"\"/>" << endl;
154 *out <<
" <b>" << endl;
156 *out <<
" </b>" << endl;
157 *out <<
" </td>" << endl;
158 *out <<
" <td width=\"32\">" << endl;
159 *out <<
" <a href=\"/urn:xdaq-application:lid=3\">" << endl;
160 *out <<
" <img" << endl;
161 *out <<
" align=\"middle\"" << endl;
162 *out <<
" src=\"/hyperdaq/images/HyperDAQ.jpg\"" << endl;
163 *out <<
" alt=\"HyperDAQ\"" << endl;
164 *out <<
" width=\"32\"" << endl;
165 *out <<
" height=\"32\"" << endl;
166 *out <<
" border=\"\"/>" << endl;
167 *out <<
" </a>" << endl;
168 *out <<
" </td>" << endl;
169 *out <<
" <td width=\"32\">" << endl;
170 *out <<
" </td>" << endl;
171 *out <<
" <td width=\"32\">" << endl;
173 *out <<
" <img" << endl;
174 *out <<
" align=\"middle\"" << endl;
175 *out <<
" src=\"/evf/images/spoticon.jpg\"" << endl;
176 *out <<
" alt=\"main\"" << endl;
177 *out <<
" width=\"32\"" << endl;
178 *out <<
" height=\"32\"" << endl;
179 *out <<
" border=\"\"/>" << endl;
180 *out <<
" </a>" << endl;
181 *out <<
" </td>" << endl;
182 *out <<
"</tr>" << endl;
183 *out <<
"</table>" << endl;
185 *out <<
"<hr/>" << endl;
187 *out << cgicc::form().set(
"method",
"GET").set(
"action", path )
189 boost::char_separator<char> sep(
"&");
190 boost::tokenizer<boost::char_separator<char> >
tokens(query, sep);
191 for (
boost::tokenizer<boost::char_separator<char> >::iterator tok_iter = tokens.begin();
192 tok_iter != tokens.end(); ++tok_iter){
193 size_t pos = (*tok_iter).find_first_of(
"=");
194 if(pos != std::string::npos){
195 std::string
first = (*tok_iter).substr(0 , pos);
196 std::string
second = (*tok_iter).substr(pos+1, (*tok_iter).length()-pos-1);
197 *out <<
cgicc::input().set(
"type",
"hidden").set(
"name",first).set(
"value", second)
202 *out <<
"Select " << endl;
203 *out <<
cgicc::select().set(
"name",
"exceptiontype") << std::endl;
208 sprintf(istring,
"%d",
i);
209 *out << cgicc::option().set(
"value",istring) <<
menu[
i] << cgicc::option() << std::endl;
212 *out <<
"<br>" << endl;
213 *out <<
"Qualifier" << endl;
214 *out <<
cgicc::input().set(
"type",
"text").set(
"name",
"qualifier") << std::endl;
215 *out <<
cgicc::input().set(
"type",
"submit").set(
"value",
"Do It !") << std::endl;
216 *out << cgicc::form() << std::endl;
218 *out <<
"</body>" << endl;
219 *out <<
"</html>" << endl;
boost::tokenizer< boost::char_separator< char > > tokenizer
void defaultWebPage(xgi::Input *in, xgi::Output *out)
unsigned int intqualifier_
void publish(xdata::InfoSpace *)
U second(std::pair< T, U > const &p)
void beginRun(edm::Run &r)
void analyze(const edm::Event &e, const edm::EventSetup &c)
std::string original_referrer_
static const int menu_items
Log< T >::type log(const T &t)
void endLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &)
static const std::string menu[menu_items]