CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ELdestControl.cc
Go to the documentation of this file.
1 // ----------------------------------------------------------------------
2 //
3 // ELdestControl.cc
4 //
5 // History:
6 //
7 // 7/5/98 mf Created
8 // 6/16/99 jvr Allow include/suppress options on destinations
9 // 7/2/99 jvr Added separate/attachTime, Epilogue, and Serial options
10 // 7/2/99 jvr Added separate/attachTime, Epilogue, and Serial options
11 // 6/7/00 web Reflect consolidation of ELdestination/X; add
12 // filterModule()
13 // 6/15/00 web using -> USING
14 // 10/4/00 mf excludeModule()
15 // 3/13/01 mf statisticsMap()
16 // 4/04/01 mf ignoreModule() and respondToModule();
17 //10/17/01 mf setTableLimit()
18 // 3/03/02 mf conditionalize all forwarding on if (d) so that using a
19 // default ELdestControl has no effect on anything. Needed for
20 // good behavior for handle recovery.
21 // 6/23/03 mf changeFile(), flush()
22 // 5/18/06 mf setInterval
23 // 6/19/08 mf summaryForJobReport()
24 // ----------------------------------------------------------------------
25 
26 
29 
30 #include <iostream>
31 using std::cerr;
32 
33 // Possible Traces:
34 // #define ELdestinationCONSTRUCTOR_TRACE
35 
36 
37 namespace edm {
38 namespace service {
39 
40 
41 // ----------------------------------------------------------------------
42 
43 
44 ELdestControl::ELdestControl( boost::shared_ptr<ELdestination> dest )
45 : d ( dest )
46 {
47  #ifdef ELdestinationCONSTRUCTOR_TRACE
48  std::cerr << "Constructor for ELdestControl\n";
49  #endif
50 } // ELdestControl()
51 
52 
54 : d ( )
55 {
56  #ifdef ELdestinationCONSTRUCTOR_TRACE
57  std::cerr << "Default Constructor for ELdestControl\n";
58  #endif
59 } // ELdestControl()
60 
61 
63  #ifdef ELdestinationCONSTRUCTOR_TRACE
64  std::cerr << "Destructor for ELdestControl\n";
65  #endif
66 } // ~ELdestControl()
67 
68 
69 // ----------------------------------------------------------------------
70 // Behavior control methods invoked by the framework
71 // ----------------------------------------------------------------------
72 
74  if (d) d->threshold = sv;
75  return * this;
76 }
77 
78 
80  if (d) d->traceThreshold = sv;
81  return * this;
82 }
83 
84 
86  if (d) d->limits.setLimit( s, n );
87  return * this;
88 }
89 
90 
92  ( const ELseverityLevel & sv, int interval ) {
93  if (d) d->limits.setInterval( sv, interval );
94  return * this;
95 }
96 
97 ELdestControl & ELdestControl::setInterval( const ELstring & s, int interval ) {
98  if (d) d->limits.setInterval( s, interval );
99  return * this;
100 }
101 
102 
104  if (d) d->limits.setLimit( sv, n );
105  return * this;
106 }
107 
108 
110  if (d) d->limits.setTimespan( s, n );
111  return * this;
112 }
113 
114 
116  if (d) d->limits.setTimespan( sv, n );
117  return * this;
118 }
119 
120 
122  if (d) d->limits.setTableLimit( n );
123  return * this;
124 }
125 
126 
127 void ELdestControl::suppressText() { if (d) d->suppressText(); } // $$ jvr
128 void ELdestControl::includeText() { if (d) d->includeText(); }
129 
130 void ELdestControl::suppressModule() { if (d) d->suppressModule(); }
131 void ELdestControl::includeModule() { if (d) d->includeModule(); }
132 
133 void ELdestControl::suppressSubroutine() { if (d) d->suppressSubroutine(); }
134 void ELdestControl::includeSubroutine() { if (d) d->includeSubroutine(); }
135 
136 void ELdestControl::suppressTime() { if (d) d->suppressTime(); }
137 void ELdestControl::includeTime() { if (d) d->includeTime(); }
138 
139 void ELdestControl::suppressContext() { if (d) d->suppressContext(); }
140 void ELdestControl::includeContext() { if (d) d->includeContext(); }
141 
142 void ELdestControl::suppressSerial() { if (d) d->suppressSerial(); }
143 void ELdestControl::includeSerial() { if (d) d->includeSerial(); }
144 
145 void ELdestControl::useFullContext() { if (d) d->useFullContext(); }
146 void ELdestControl::useContext() { if (d) d->useContext(); }
147 
148 void ELdestControl::separateTime() { if (d) d->separateTime(); }
149 void ELdestControl::attachTime() { if (d) d->attachTime(); }
150 
151 void ELdestControl::separateEpilogue() { if (d) d->separateEpilogue(); }
152 void ELdestControl::attachEpilogue() { if (d) d->attachEpilogue(); }
153 
154 void ELdestControl::noTerminationSummary() {if (d) d->noTerminationSummary(); }
155 
157  if (d) d->preamble = preamble;
158  return * this;
159 }
160 
162  if (d) {
163  return d->setLineLength(len);
164  } else {
165  return 0;
166  }
167 }
168 
170  if (d) {
171  return d->getLineLength();
172  } else {
173  return 0;
174  }
175 }
176 
178  if (d) d->filterModule( moduleName );
179 }
180 
182  if (d) d->excludeModule( moduleName );
183 }
184 
186  if (d) d->ignoreModule( moduleName );
187 }
188 
190  if (d) d->respondToModule( moduleName );
191 }
192 
193 
195  if (d) d->newline = newline;
196  return * this;
197 }
198 
199 
200 // ----------------------------------------------------------------------
201 // Active methods invoked by the framework, forwarded to the destination:
202 // ----------------------------------------------------------------------
203 
204 // *** Active methods invoked by the framework ***
205 
207  if (d) d->summary( dest, title );
208 }
209 
210 
211 void ELdestControl::summary( std::ostream & os, const char * title ) {
212  if (d) d->summary( os, title );
213 }
214 
215 
216 void ELdestControl::summary( ELstring & s, const char * title ) {
217  if (d) d->summary( s, title );
218 }
219 
221  if (d) d->summary( );
222 }
223 
224 void ELdestControl::summaryForJobReport( std::map<std::string, double> & sm) {
225  if (d) d->summaryForJobReport(sm);
226 }
227 
228 
230  if (d) d->clearSummary();
231  return * this;
232 }
233 
234 
236  if (d) d->wipe();
237  return * this;
238 }
239 
240 
242  if (d) d->zero();
243  return * this;
244 }
245 
246 
248  if (d) {
249  return d->log( msg );
250  } else {
251  return false;
252  }
253 }
254 
256  , const ELstring & sumLines
257  ) {
258  if (d) d->summarization ( title, sumLines );
259 }
260 
262  if (d) {
263  return d->getNewline();
264  } else {
265  return ELstring();
266  }
267 }
268 
269 std::map<ELextendedID , StatsCount> ELdestControl::statisticsMap() const {
270  if (d) {
271  return d->statisticsMap();
272  } else {
273  return std::map<ELextendedID , StatsCount>();
274  }
275 }
276 
277 void ELdestControl::changeFile (std::ostream & os) {
278  if (d) d->changeFile(os);
279 }
280 
282  if (d) d->changeFile(filename);
283 }
284 
286  if (d) d->flush();
287 }
288 
289 
290 // ----------------------------------------------------------------------
291 
292 
293 } // end of namespace service
294 } // end of namespace edm
boost::shared_ptr< ELdestination > d
ELdestControl & setLimit(const ELstring &s, int n)
ELstring getNewline() const
ELdestControl & setThreshold(const ELseverityLevel &sv)
tuple interval
Definition: MergeJob_cfg.py:20
void changeFile(std::ostream &os)
bool log(edm::ErrorObj &msg)
ELdestControl & setTimespan(const ELstring &s, int n)
ELdestControl & setTraceThreshold(const ELseverityLevel &sv)
void ignoreModule(ELstring const &moduleName)
std::string moduleName(Provenance const &provenance)
Definition: Provenance.cc:27
void respondToModule(ELstring const &moduleName)
ELdestControl & setPreamble(const ELstring &preamble)
void filterModule(ELstring const &moduleName)
ELdestControl & clearSummary()
std::map< ELextendedID, StatsCount > statisticsMap() const
void summaryForJobReport(std::map< std::string, double > &sm)
ELdestControl & setNewline(const ELstring &newline)
void excludeModule(ELstring const &moduleName)
ELdestControl & setTableLimit(int n)
ELdestControl & setInterval(const ELstring &s, int interval)
tuple filename
Definition: lut2db_cfg.py:20
void summarization(const ELstring &title, const ELstring &sumLines)
std::string ELstring
Definition: ELstring.h:26