6 #include "xgi/Output.h"
9 #include "cgicc/Cgicc.h"
10 #include "cgicc/FormEntry.h"
11 #include "cgicc/HTMLClasses.h"
37 pthread_mutex_init(&
mutex_,0);
38 pthread_cond_init(&
cond_,0);
103 cgicc::Cgicc cgi(in);
104 if ( xgi::Utils::hasFormElement(cgi,
"service") )
105 mname = xgi::Utils::getFormElement(cgi,
"service")->getValue();
106 if ( xgi::Utils::hasFormElement(cgi,
"step") )
108 pthread_mutex_lock(&
mutex_);
110 pthread_cond_signal(&
cond_);
112 pthread_mutex_unlock(&
mutex_);
114 cgicc::CgiEnvironment cgie(in);
117 path = cgie.getPathInfo() +
"?" + cgie.getQueryString();
127 *out <<
"<html>" << endl;
128 *out <<
"<head>" << endl;
131 *out <<
"<STYLE type=\"text/css\"> #T1 {border-width: 2px; border: solid blue; text-align: center} </STYLE> " << endl;
132 *out <<
"<link type=\"text/css\" rel=\"stylesheet\"";
133 *out <<
" href=\"/" << urn
134 <<
"/styles.css\"/>" << endl;
137 <<
" MAIN</title>" << endl;
139 *out <<
"</head>" << endl;
140 *out <<
"<body onload=\"loadXMLDoc()\">" << endl;
141 *out <<
"<table border=\"0\" width=\"100%\">" << endl;
142 *out <<
"<tr>" << endl;
143 *out <<
" <td align=\"left\">" << endl;
144 *out <<
" <img" << endl;
145 *out <<
" align=\"middle\"" << endl;
146 *out <<
" src=\"/evf/images/stepper.jpg\"" << endl;
147 *out <<
" alt=\"main\"" << endl;
148 *out <<
" width=\"90\"" << endl;
149 *out <<
" height=\"64\"" << endl;
150 *out <<
" border=\"\"/>" << endl;
151 *out <<
" <b>" << endl;
153 *out <<
" </b>" << endl;
154 *out <<
" </td>" << endl;
155 *out <<
" <td width=\"32\">" << endl;
156 *out <<
" <a href=\"/urn:xdaq-application:lid=3\">" << endl;
157 *out <<
" <img" << endl;
158 *out <<
" align=\"middle\"" << endl;
159 *out <<
" src=\"/hyperdaq/images/HyperDAQ.jpg\"" << endl;
160 *out <<
" alt=\"HyperDAQ\"" << endl;
161 *out <<
" width=\"32\"" << endl;
162 *out <<
" height=\"32\"" << endl;
163 *out <<
" border=\"\"/>" << endl;
164 *out <<
" </a>" << endl;
165 *out <<
" </td>" << endl;
166 *out <<
" <td width=\"32\">" << endl;
167 *out <<
" </td>" << endl;
168 *out <<
" <td width=\"32\">" << endl;
170 *out <<
" <img" << endl;
171 *out <<
" align=\"middle\"" << endl;
172 *out <<
" src=\"/evf/images/epicon.jpg\"" << endl;
173 *out <<
" alt=\"main\"" << endl;
174 *out <<
" width=\"32\"" << endl;
175 *out <<
" height=\"32\"" << endl;
176 *out <<
" border=\"\"/>" << endl;
177 *out <<
" </a>" << endl;
178 *out <<
" </td>" << endl;
179 *out <<
"</tr>" << endl;
180 *out <<
"</table>" << endl;
182 *out <<
"<hr/>" << endl;
184 *out <<
"run number " <<
rid_ <<
"<br>" << endl;
185 *out <<
"event number " <<
eid_ <<
"<br>" << endl;
187 *out <<
"event processor " <<
epstate_ <<
"<br>" << endl;
189 *out <<
"next module type " <<
modulename_ <<
"<br>" << endl;
190 *out <<
"next module label " <<
modulelabel_ <<
"<br>" << endl;
192 *out <<
"<hr/>" << endl;
194 *out << cgicc::form().set(
"method",
"GET").set(
"action", path )
196 *out <<
cgicc::input().set(
"type",
"hidden").set(
"name",
"service").set(
"value", mname)
198 *out <<
cgicc::input().set(
"type",
"hidden").set(
"name",
"step").set(
"value",
"yes")
200 *out <<
cgicc::input().set(
"type",
"submit").set(
"value",
"Step") << std::endl;
201 *out << cgicc::form() << std::endl;
203 *out <<
"</body>" << endl;
204 *out <<
"</html>" << endl;
EventNumber_t event() const
void watchPostEndJob(PostEndJob::slot_type const &iSlot)
void watchPostModule(PostModule::slot_type const &iSlot)
void watchPreProcessEvent(PreProcessEvent::slot_type const &iSlot)
std::string const & moduleName() const
void preEventProcessing(const edm::EventID &, const edm::Timestamp &)
std::string const & moduleLabel() const
void postModule(const edm::ModuleDescription &)
void watchPreModule(PreModule::slot_type const &iSlot)
void watchPostProcessEvent(PostProcessEvent::slot_type const &iSlot)
std::string original_referrer_
void watchPreSource(PreSource::slot_type const &iSlot)
void defaultWebPage(xgi::Input *in, xgi::Output *out)
void preModule(const edm::ModuleDescription &)
Stepper(const edm::ParameterSet &, edm::ActivityRegistry &)
void postEventProcessing(const edm::Event &, const edm::EventSetup &)
void watchPostSource(PostSource::slot_type const &iSlot)
void watchPostBeginJob(PostBeginJob::slot_type const &iSlot)
convenience function for attaching to signal