Logo ROOT  
Reference Guide
TProofProgressLog.cxx
Go to the documentation of this file.
1// @(#)root/sessionviewer:$Id$
2// Author: G Ganis, Jul 2005
3
4/*************************************************************************
5 * Copyright (C) 1995-2005, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#include "TError.h"
13#include "TPRegexp.h"
14#include "TGFrame.h"
15#include "TGTextView.h"
16#include "TGScrollBar.h"
17#include "TGLabel.h"
18#include "TProof.h"
20#include "TProofProgressLog.h"
21#include "TProofLog.h"
22#include "TGNumberEntry.h"
23#include "TGListBox.h"
24#include "TGMenu.h"
25#include "TGButton.h"
26
27const UInt_t kLogElemFilled = BIT(17); // If the log element has been retrieved at least once
28const UInt_t kDefaultActive = BIT(18); // If the log element is active by default
29
30///////////////////////////////////////////////////////////////////////////
31// //
32// TProofProgressLog //
33// //
34// Dialog used to display Proof session logs from the Proof progress //
35// dialog. //
36// It uses TProofMgr::GetSessionLogs() mechanism internally //
37// //
38///////////////////////////////////////////////////////////////////////////
39
41
42////////////////////////////////////////////////////////////////////////////////
43/// Create a window frame for log messages.
44
46 TGTransientFrame(gClient->GetRoot(), gClient->GetRoot(), w, h)
47{
48 fDialog = d;
50 fSessionIdx = 0;
51
52 Init(w, h);
53}
54
55////////////////////////////////////////////////////////////////////////////////
56/// Create a window frame for log messages.
57
59 TGTransientFrame(gClient->GetRoot(), gClient->GetRoot(), w, h)
60{
61 fDialog = 0;
62 fSessionUrl = url;
63 fSessionIdx = (idx > 0) ? -idx : idx;
64
65 Init(w, h);
66}
67
68////////////////////////////////////////////////////////////////////////////////
69/// Init window frame for log messages.
70
72{
73 fProofLog = 0;
76 // use hierarchical cleaning
78
79 //The text window
80 TGHorizontalFrame *htotal = new TGHorizontalFrame(this, w, h);
81 TGVerticalFrame *vtextbox = new TGVerticalFrame(htotal, w, h);
82 //fText = new TGTextView(this, w, h);
83 fText = new TGTextView(vtextbox, w, h);
84 vtextbox->AddFrame(fText, new TGLayoutHints(kLHintsTop | kLHintsExpandX | kLHintsExpandY, 3, 3, 3, 3));
85
86 //The frame for choosing workers
87 fVworkers = new TGVerticalFrame(htotal);
88 // URL choice
89 TGLabel *laburl = new TGLabel(fVworkers, "Enter cluster URL:");
90 fVworkers->AddFrame(laburl, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 2, 2, 2));
94 //The lower row of number entries and buttons
95 TGHorizontalFrame *hfurlbox = new TGHorizontalFrame(fVworkers, 20, 20);
96 TGLabel *labsess = new TGLabel(hfurlbox, "Enter session:");
97 hfurlbox->AddFrame(labsess, new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 5, 2, 2, 2));
98 fSessNum = new TGNumberEntry(hfurlbox, 0, 5, -1, TGNumberFormat::kNESInteger);
101 fSessNum->GetNumberEntry()->SetToolTipText("Use 0 for the last known one,"
102 " negative numbers for the previous ones, e.g. -1 for the last-but-one");
103 hfurlbox->AddFrame(fSessNum, new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 2, 0, 0, 0));
104 fUrlButton = new TGTextButton(hfurlbox, "Get logs info");
105 fUrlButton->Connect("Clicked()", "TProofProgressLog", this, "Rebuild()");
106 hfurlbox->AddFrame(fUrlButton, new TGLayoutHints(kLHintsCenterY | kLHintsRight, 4, 0, 0, 0));
107 fVworkers->AddFrame(hfurlbox, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX, 2, 2, 2, 2));
108
109 TGNumberEntry *nent = new TGNumberEntry(hfurlbox);
110 fVworkers->AddFrame(nent, new TGLayoutHints(kLHintsTop | kLHintsLeft, 4, 0, 0, 0));
111
112 //The list of workers
113 fLogList = 0;
115 fLogList->Resize(102,52);
117
118 //The SelectAll/ClearAll buttons
119 TGHorizontalFrame *hfselbox = new TGHorizontalFrame(fVworkers, 20, 20);
120 TGLabel *label1 = new TGLabel(hfselbox,"Choose workers:");
121 hfselbox->AddFrame(label1, new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 0, 0, 0, 0));
122 TGTextButton *selall = new TGTextButton(hfselbox, " &All ");
123 selall->Connect("Clicked()", "TProofProgressLog", this, "Select(=0)");
124 hfselbox->AddFrame(selall, new TGLayoutHints(kLHintsCenterY | kLHintsRight, 10, 0, 0, 0));
125 TGTextButton *clearall = new TGTextButton(hfselbox, " &Clear ");
126 clearall->Connect("Clicked()", "TProofProgressLog", this, "Select(=1)");
127 hfselbox->AddFrame(clearall, new TGLayoutHints(kLHintsCenterY | kLHintsRight, 10, 0, 0, 0));
128
129 //select the defaut actives to start with
130 Select(0, kFALSE);
131
132 //Display button
133 fLogNew = new TGTextButton(fVworkers, "&Display");
134 fLogNew->Connect("Clicked()", "TProofProgressLog", this, "DoLog(=kFALSE)");
135 //fLogNew->Resize(102, 20);
136 // fLogNew->SetMargins(1, 1, 0, 1);
137 fLogNew->SetTextColor(0xffffff, kFALSE);
138 fLogNew->SetBackgroundColor(0x000044);
139 fVworkers->AddFrame(hfselbox, new TGLayoutHints(kLHintsExpandX | kLHintsTop, 5, 2, 2, 2));
142
144
145 //The lower row of number entries and buttons
146 TGHorizontalFrame *hflogbox = new TGHorizontalFrame(vtextbox, 550, 20);
147 fClose = new TGTextButton(hflogbox, " &Close ");
148 fClose->Connect("Clicked()", "TProofProgressLog", this, "CloseWindow()");
150 kLHintsRight, 10, 2, 2, 2));
151
152 //Saving to a file controls
153 fSave = new TGTextButton(hflogbox, "&Save");
154 fSave->Connect("Clicked()", "TProofProgressLog", this, "SaveToFile()");
155 hflogbox->AddFrame(fSave, new TGLayoutHints(kLHintsCenterY | kLHintsRight, 4, 0, 0, 0));
156 fFileName = new TGTextEntry(hflogbox);
157 fFileName->SetText("<session-tag>.log");
159 TGLabel *label10 = new TGLabel(hflogbox, "Save to a file:");
160 hflogbox->AddFrame(label10, new TGLayoutHints(kLHintsCenterY | kLHintsRight, 50, 2, 2, 2));
161
162 //Choose the number of lines to display
163 TGVerticalFrame *vlines = new TGVerticalFrame(hflogbox);
164 TGHorizontalFrame *vlines_buttons = new TGHorizontalFrame(vlines);
165 TGLabel *label2 = new TGLabel(vlines_buttons, "Lines:");
166 vlines_buttons->AddFrame(label2, new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 2, 2, 2, 2));
167
168 fAllLines = new TGCheckButton(vlines_buttons, "all");
169 fAllLines->SetToolTipText("Retrieve all lines (service messages excluded)");
171 fAllLines->Connect("Clicked()", "TProofProgressLog", this, "NoLineEntry()");
172 vlines_buttons->AddFrame(fAllLines, new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 2, 2, 2, 2));
173
174 fRawLines = new TGCheckButton(vlines_buttons, "svcmsg");
175 fRawLines->SetToolTipText("Retrieve all type of lines, service messages included");
177 vlines_buttons->AddFrame(fRawLines, new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 2, 2, 2, 2));
178
179 TGLabel *label11 = new TGLabel(vlines_buttons, "From");
180 vlines_buttons->AddFrame(label11, new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 2, 2, 2, 2));
181
182 fLinesFrom = new TGNumberEntry(vlines_buttons, 0, 5, -1, TGNumberFormat::kNESInteger);
183 // coverity[negative_returns]: no problem with -100, the format is kNESInteger
185 fLinesFrom->GetNumberEntry()->SetToolTipText("Negative values indicate \"tail\" action");
186
187
188 vlines_buttons->AddFrame(fLinesFrom, new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 2, 2, 2, 2));
189
190 TGLabel *label3 = new TGLabel(vlines_buttons, "to");
191 vlines_buttons->AddFrame(label3, new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 2, 2, 2, 2));
192 fLinesTo = new TGNumberEntry(vlines_buttons, 0, 5, -1, TGNumberFormat::kNESInteger);
193 vlines_buttons->AddFrame(fLinesTo, new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 2, 2, 2, 2));
194 vlines->AddFrame(vlines_buttons, new TGLayoutHints(kLHintsCenterY));
195 hflogbox->AddFrame(vlines, new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 2, 2, 2, 2));
196
197 //
198 // Lowest line, with filter (grep or cmd pipe) controls
199 //
200
201 TGHorizontalFrame *hfgrepbox = new TGHorizontalFrame(vtextbox, 550, 20);
202
203 // Grep/pipe label, textbox and button
204 fGrepLabel = new TGLabel(hfgrepbox, "");
205 hfgrepbox->AddFrame(fGrepLabel, new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 2, 2, 2, 2));
206 fGrepText = new TGTextEntry(hfgrepbox);
207 {
210 }
212 fGrepButton = new TGTextButton(hfgrepbox, "Filter");
213 fGrepButton->Connect("Clicked()", "TProofProgressLog", this, "DoLog(=kTRUE)");
214 hfgrepbox->AddFrame(fGrepButton, new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 4, 10, 0, 0)); // l r t b
215
216 // Checkbox for inverting selection or giving a pipe command
217 fGrepCheckInv = new TGCheckButton(hfgrepbox, "invert match");
218 fGrepCheckInv->Connect("Clicked()", "TProofProgressLog", this, "SetGrepView()");
219 hfgrepbox->AddFrame(fGrepCheckInv, new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 2, 2, 2, 2));
220
221 fGrepCheckCmd = new TGCheckButton(hfgrepbox, "is a pipe command");
222 fGrepCheckCmd->Connect("Clicked()", "TProofProgressLog", this, "SetGrepView()");
223 hfgrepbox->AddFrame(fGrepCheckCmd, new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 2, 2, 2, 2));
224
225 // fRawLines->SetToolTipText("Retrieve all type of lines, service messages included");
226 // fRawLines->SetState(kButtonUp);
227 // vlines_buttons->AddFrame(fRawLines, new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 2, 2, 2, 2));
228
229 //
230 // Add frames to the global picture
231 //
232
233 vtextbox->AddFrame(hflogbox, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX, 2, 2, 2, 2));
234 vtextbox->AddFrame(hfgrepbox, new TGLayoutHints(kLHintsBottom | kLHintsLeft | kLHintsExpandX, 2, 2, 2, 2));
235 htotal->AddFrame(vtextbox, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY | kLHintsRight, 3, 3, 3, 3));
237 kLHintsExpandY, 3, 3, 3, 3));
238 SetGrepView();
240 Resize();
242 Popup();
243}
244
245////////////////////////////////////////////////////////////////////////////////
246/// Destructor
247
249{
250 // Cleanup the log object
252
253 // Detach from owner dialog
254 if (fDialog) {
255 fDialog->fLogWindow = 0;
256 fDialog->fProof->Disconnect("LogMessage(const char*,Bool_t)", this,
257 "LogMessage(const char*,Bool_t)");
258 }
259}
260
261////////////////////////////////////////////////////////////////////////////////
262/// Show log window.
263
265{
266 MapWindow();
267}
268
269////////////////////////////////////////////////////////////////////////////////
270/// Clear log window.
271
273{
274 if (fText)
275 fText->Clear();
276}
277
278////////////////////////////////////////////////////////////////////////////////
279/// Load a text buffer in the window.
280
281void TProofProgressLog::LoadBuffer(const char *buffer)
282{
283 if (fText)
284 fText->LoadBuffer(buffer);
285}
286
287////////////////////////////////////////////////////////////////////////////////
288/// Load a file in the window.
289
291{
292 if (fText)
294}
295
296////////////////////////////////////////////////////////////////////////////////
297/// Add text to the window.
298
299void TProofProgressLog::AddBuffer(const char *buffer)
300{
301 if (fText) {
302 TGText txt;
303 txt.LoadBuffer(buffer);
304 fText->AddText(&txt);
305 }
306}
307
308////////////////////////////////////////////////////////////////////////////////
309/// Handle close button or when closed via window manager action.
310
312{
313 DeleteWindow();
314}
315
316////////////////////////////////////////////////////////////////////////////////
317/// Build the list of workers. For this, extract the logs and take the names
318/// of TProofLogElements
319
321{
322 // Set title
323 TString title;
324 title.Form("PROOF - Processing logs for session 'undefined'");
325 SetWindowName(title.Data());
326 SetIconName(title.Data());
327
328 // Create the list-box now
329 if (create) {
330 if (fLogList) delete fLogList;
332 } else {
333 // Reset
335 fLogList->RemoveEntries(0,nent);
336 fLogList->Layout();
337 }
338
339 if (fSessionUrl.IsNull()) {
340 if (gDebug > 0)
341 Info("BuildLogList", "sesssion URL undefined - do nothing");
342 return;
343 }
345 if (!mgr || !mgr->IsValid()) {
346 Warning("BuildLogList", "unable open a manager connection to %s",
347 fSessionUrl.Data());
348 return;
349 }
350 if (!(fProofLog = mgr->GetSessionLogs(fSessionIdx,"NR"))) {
351 Warning("BuildLogList", "unable to get logs from %s",
352 fSessionUrl.Data());
353 return;
354 }
355 // Set title
356 title.Form("PROOF - Processing logs for session '%s', started on %s at %s",
359 SetWindowName(title.Data());
360 SetIconName(title.Data());
361
362 TList *elem = fProofLog->GetListOfLogs();
363 TIter next(elem);
364 TProofLogElem *pe = 0;
365
366 Int_t is = 0;
367 TGLBEntry *ent = 0;
368 TString buf;
369 while ((pe=(TProofLogElem*)next())){
370 TUrl url(pe->GetTitle());
371 buf.Form("%s %s", pe->GetName(), url.GetHost());
372 fLogList->AddEntry(buf.Data(), is);
373 if ((ent = fLogList->FindEntry(buf.Data()))) {
376 if (!(pe->IsWorker())) ent->SetBit(kDefaultActive);
377 }
378 is++;
379 }
380
381 // Done
382 return;
383}
384
385////////////////////////////////////////////////////////////////////////////////
386/// Display logs. 'grep' is set to kTRUE if it is invoked by pressing the
387/// 'Filter' button.
388
390{
391 Clear();
392
393 if (!fGrepText) {
394 Warning("DoLog", "no text: do nothing!");
395 return;
396 }
397
398 TString greptext = fGrepText->GetText();
399 greptext.Remove(TString::kBoth, ' ');
400 if (greptext.IsNull()) {
401 grep = kFALSE;
402 }
403 else if (!fGrepCheckCmd->IsOn()) {
404 // Not a command: sanitize string
405 TPMERegexp san("(^|[^\\\\])([^a-zA-Z0-9_=\\\\/.-])");
406 while ( san.Substitute(greptext, "$1\\$2") > 0 );
407 }
408
409 Int_t from, to;
410 if (fAllLines->IsOn()){
411 from = 0;
412 to = -1;
413 } else {
414 from = fLinesFrom->GetIntNumber();
415 to = fLinesTo->GetIntNumber();
416 }
417
418 // Create the TProofLog instance
419 if (!fProofLog) {
420 TProofMgr *mgr = 0;
421 if ((mgr = TProof::Mgr(fSessionUrl.Data()))) {
422 if (!(fProofLog = mgr->GetSessionLogs(fSessionIdx, "NR"))) {
423 Warning("DoLog", "unable to instantiate TProofLog for %s",
424 fSessionUrl.Data());
425 }
426 } else {
427 Warning("DoLog", "unable to instantiate a TProofMgr for %s",
428 fSessionUrl.Data());
429 }
430 }
431
432 // Pipe command for filtering
433 TString pipeCommand;
434
435 // Filter out SvcMsg
436 if (!fRawLines->IsOn()) {
437 pipeCommand = "grep -v \"| SvcMsg\"";
438 }
439
440 // Default is not retrieving
442 if (!grep) {
443 // Not invoked via 'Filter' button
444 if (!fFullText ||
445 ((fTextType != kRaw && fRawLines->IsOn()) ||
446 (fTextType != kStd && !fRawLines->IsOn())) ||
448 retrieve = kTRUE;
449 if (fRawLines->IsOn()) {
450 fTextType = kRaw;
451 } else {
452 fTextType = kStd;
453 }
456 }
457 } else {
458 retrieve = kTRUE;
460
461 if (!pipeCommand.IsNull())
462 pipeCommand.Append('|');
463
464 if (fGrepCheckCmd->IsOn()) {
465 pipeCommand.Append(greptext);
466 }
467 else {
468 pipeCommand.Append("grep ");
469 if (fGrepCheckInv->IsOn())
470 pipeCommand.Append("-v ");
471 pipeCommand.Append("-- ");
472 pipeCommand.Append(greptext); // sanitized
473 }
474
477 }
478
479 // Display now
480 if (fProofLog) {
481 TList *selected = new TList;
482 fLogList->GetSelectedEntries(selected);
483 TIter next(selected);
484 TGTextLBEntry *selentry;
485 Bool_t logonly = fProofLog->LogToBox();
487
488 fProofLog->Connect("Prt(const char*)", "TProofProgressLog",
489 this, "LogMessage(const char*, Bool_t)");
490 while ((selentry=(TGTextLBEntry*)next())){
491 TString ord = selentry->GetText()->GetString();
492 Int_t is = ord.Index(" ");
493 if (is != kNPOS) ord.Remove(is);
494 if (retrieve || !selentry->TestBit(kLogElemFilled)) {
495 pipeCommand.Prepend('|');
496 if (fTextType == kRaw) {
497 if (gDebug >= 2)
498 Info("DoLog", "Retrieving unfiltered log for %s", ord.Data());
500 }
501 else {
502 if (gDebug >= 2)
503 Info("DoLog", "Retrieving log for %s filtered with %s",
504 ord.Data(), pipeCommand.Data());
505 fProofLog->Retrieve(ord.Data(), TProofLog::kGrep, 0, pipeCommand.Data());
506 }
507 selentry->SetBit(kLogElemFilled);
508 }
509 fProofLog->Display(ord.Data(), from, to);
510 }
511 fProofLog->SetLogToBox(logonly);
512 fProofLog->Disconnect("Prt(const char*)", this, "LogMessage(const char*, Bool_t)");
513 delete selected;
514 }
515}
516
517////////////////////////////////////////////////////////////////////////////////
518/// Load/append a log msg in the log frame, if open
519
520void TProofProgressLog::LogMessage(const char *msg, Bool_t all)
521{
522 if (all) {
523 // load buffer
524 LoadBuffer(msg);
525 } else {
526 // append
527 AddBuffer(msg);
528 }
529}
530
531////////////////////////////////////////////////////////////////////////////////
532///Save the logs to a file
533///Only the name of the file is taken, no expansion
534
536{
537 if (!fProofLog) DoLog();
538
539 // File name: the default is <session-tag>.log
540 TString filename = fFileName->GetText();
541 if (filename.IsNull() || filename == "<session-tag>.log") {
542 filename = (fDialog && fDialog->fProof) ?
543 TString::Format("%s.log", fDialog->fProof->GetName()) :
544 TString("proof.log");
545 }
546
547 TList *selected = new TList;
548 fLogList->GetSelectedEntries(selected);
549 TIter next(selected);
550 TGTextLBEntry *selentry;
551 Bool_t writemode=kTRUE;
552 const char *option;
553 TString ord;
554 while ((selentry=(TGTextLBEntry*)next())){
555 ord = selentry->GetText()->GetString();
556 Int_t isp = ord.Index(' ');
557 if (isp != kNPOS) ord.Remove(isp);
558 //open the file in "w" mode for the first time
559 option = writemode ? "w" : "a";
560 fProofLog->Save(ord.Data(), filename.Data(), option);
561 writemode=kFALSE;
562 }
563
564 Info("SaveToFile", "logs saved to file %s", filename.Data());
565 return;
566}
567
568////////////////////////////////////////////////////////////////////////////////
569/// Sets the view of grep filters according to the value of checkboxes
570
572{
573 if (fGrepCheckCmd->IsOn()) {
574 fGrepLabel->SetText("Pipe log through command:");
576 }
577 else {
578 fGrepLabel->SetText("Grep:");
581 if (u) {
582 fGrepLabel->SetText("Show lines not matching:");
584 }
585 else {
586 fGrepLabel->SetText("Show lines matching:");
588 }
589 }
590
591 // Ugly but necessary const_cast
592 TGFrame *frame = dynamic_cast<TGFrame *>( const_cast<TGWindow *>(fGrepLabel->GetParent()) );
593 if (frame) frame->Layout();
594
595}
596
597////////////////////////////////////////////////////////////////////////////////
598///Enable/disable the line number entry
599
601{
602 if (fAllLines->IsOn()){
603 //disable the line number entry
606 } else {
609 }
610}
611
612////////////////////////////////////////////////////////////////////////////////
613///actions of select all/clear all button
614
616{
618 Bool_t sel = id ? 0 : 1;
619
620 TGLBEntry *ent = 0;
621 for (Int_t ie=0; ie<nen; ie++) {
622 if (all) {
623 fLogList->Select(ie, sel);
624 } else {
625 if ((ent = fLogList->GetEntry(ie))) {
626 if (ent->TestBit(kDefaultActive)) fLogList->Select(ie, sel);
627 }
628 }
629 }
630}
631
632
633////////////////////////////////////////////////////////////////////////////////
634/// Rebuild the log info for a new entered session
635
637{
638 // Check if we need to remake the TProofLog object
639 Bool_t sameurl = kFALSE;
640 TUrl url(fUrlText->GetText());
641 TUrl urlref(fSessionUrl.Data());
642 if (!strcmp(url.GetHostFQDN(), urlref.GetHostFQDN())) {
643 if (url.GetPort() == urlref.GetPort()) {
644 if (!strcmp(url.GetUser(), urlref.GetUser())) {
645 sameurl = kTRUE;
646 }
647 }
648 }
649 Int_t idx = 0;
650 if (sameurl) {
651 idx = fSessNum->GetIntNumber();
652 if (idx == fSessionIdx) {
653 Info("Rebuild", "same paremeters {%s, %s}, {%d, %d}: no need to rebuild TProofLog",
654 url.GetUrl(), urlref.GetUrl(), idx, fSessionIdx);
655 return;
656 }
657 }
658 // Cleanup current TProofLog
659 if (fProofLog) delete fProofLog;
660
661 // Set new parameters
663 fSessionIdx = idx;
664
665 // Rebuild the list now
667
668 // Select the defaut actives to start with
669 Select(0, kFALSE);
670 // Redraw
671 fLogList->Layout();
672
673 // Done
674 return;
675}
#define SafeDelete(p)
Definition: RConfig.hxx:550
#define d(i)
Definition: RSha256.hxx:102
#define h(i)
Definition: RSha256.hxx:106
static void retrieve(const gsl_integration_workspace *workspace, double *a, double *b, double *r, double *e)
const Ssiz_t kNPOS
Definition: RtypesCore.h:111
int Int_t
Definition: RtypesCore.h:41
unsigned int UInt_t
Definition: RtypesCore.h:42
const Bool_t kFALSE
Definition: RtypesCore.h:88
bool Bool_t
Definition: RtypesCore.h:59
const Bool_t kTRUE
Definition: RtypesCore.h:87
const char Option_t
Definition: RtypesCore.h:62
#define BIT(n)
Definition: Rtypes.h:83
#define ClassImp(name)
Definition: Rtypes.h:365
R__EXTERN Int_t gDebug
Definition: Rtypes.h:91
@ kButtonDown
Definition: TGButton.h:54
@ kButtonUp
Definition: TGButton.h:53
#define gClient
Definition: TGClient.h:166
@ kDeepCleanup
Definition: TGFrame.h:51
@ kLHintsRight
Definition: TGLayout.h:33
@ kLHintsExpandY
Definition: TGLayout.h:38
@ kLHintsLeft
Definition: TGLayout.h:31
@ kLHintsCenterY
Definition: TGLayout.h:35
@ kLHintsBottom
Definition: TGLayout.h:36
@ kLHintsTop
Definition: TGLayout.h:34
@ kLHintsExpandX
Definition: TGLayout.h:37
const UInt_t kDefaultActive
const UInt_t kLogElemFilled
const char * AsString() const
Return the date & time as a string (ctime() format).
Definition: TDatime.cxx:101
virtual void SetToolTipText(const char *text, Long_t delayms=400)
Set tool tip text associated with this button.
Definition: TGButton.cxx:395
virtual void SetEnabled(Bool_t e=kTRUE)
Set enabled or disabled state of button.
Definition: TGButton.cxx:409
virtual Bool_t IsOn() const
Definition: TGButton.h:311
virtual void SetDisabledAndSelected(Bool_t)
Set the state of a check button to disabled and either on or off.
Definition: TGButton.cxx:1260
virtual void SetState(EButtonState state, Bool_t emit=kFALSE)
Set check button state.
Definition: TGButton.cxx:1200
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=0)
Add frame to the composite frame using the specified layout hints.
Definition: TGFrame.cxx:1099
virtual void SetCleanup(Int_t mode=kLocalCleanup)
Turn on automatic cleanup of child frames in dtor.
Definition: TGFrame.cxx:1054
virtual void MapSubwindows()
Map all sub windows that are part of the composite frame.
Definition: TGFrame.cxx:1146
UInt_t fHeight
Definition: TGDimension.h:30
virtual void SetBackgroundColor(Pixel_t back)
Set background color (override from TGWindow base class).
Definition: TGFrame.cxx:294
virtual void DeleteWindow()
Delete window.
Definition: TGFrame.cxx:258
virtual void Resize(UInt_t w=0, UInt_t h=0)
Resize the frame.
Definition: TGFrame.cxx:587
virtual void Layout()
Definition: TGFrame.h:246
virtual void MapWindow()
Definition: TGFrame.h:251
virtual void SetText(TGString *newText)
Set new text in label.
Definition: TGLabel.cxx:177
virtual void Resize(UInt_t w, UInt_t h)
Resize the listbox widget.
Definition: TGListBox.cxx:1419
virtual TGLBEntry * Select(Int_t id, Bool_t sel=kTRUE)
Definition: TGListBox.h:352
virtual Int_t GetNumberOfEntries() const
Definition: TGListBox.h:331
virtual void AddEntry(TGString *s, Int_t id)
Add entry with specified string and id to listbox.
Definition: TGListBox.cxx:1211
virtual TGLBEntry * GetEntry(Int_t id) const
Returns list box entry with specified id.
Definition: TGListBox.cxx:1380
virtual void SetMultipleSelections(Bool_t multi=kTRUE)
Definition: TGListBox.h:327
virtual void Layout()
Layout the listbox components.
Definition: TGListBox.cxx:1460
virtual void GetSelectedEntries(TList *selected)
Adds all selected entries (TGLBEntry) of the list box into the list selected.
Definition: TGListBox.cxx:1533
virtual void RemoveEntries(Int_t from_ID, Int_t to_ID)
Remove a range of entries defined by from_ID and to_ID.
Definition: TGListBox.cxx:1361
virtual TGLBEntry * FindEntry(const char *s) const
Find entry by name.
Definition: TGListBox.cxx:1643
void SetIconName(const char *name)
Set window icon name. This is typically done via the window manager.
Definition: TGFrame.cxx:1759
void SetWindowName(const char *name=0)
Set window name. This is typically done via the window manager.
Definition: TGFrame.cxx:1746
virtual void SetIntNumber(Long_t val)
TGNumberEntryField * GetNumberEntry() const
virtual void SetLimits(ELimit limits=TGNumberFormat::kNELNoLimits, Double_t min=0, Double_t max=1)
virtual void SetState(Bool_t enable=kTRUE)
Set the active state.
virtual Long_t GetIntNumber() const
const char * GetString() const
Definition: TGString.h:40
virtual void SetTextColor(Pixel_t color, Bool_t global=kFALSE)
Changes text color.
Definition: TGButton.cxx:868
virtual void SetDefaultSize(UInt_t w, UInt_t h)
Set the default / minimal size of the widget.
const char * GetText() const
Definition: TGTextEntry.h:134
virtual void SetToolTipText(const char *text, Long_t delayms=500)
Set tool tip text associated with this text entry.
virtual void SetText(const char *text, Bool_t emit=kTRUE)
Sets text entry to text, clears the selection and moves the cursor to the end of the line.
virtual TGDimension GetDefaultSize() const
Return the default / minimal size of the widget.
const TGString * GetText() const
Definition: TGListBox.h:115
virtual Bool_t LoadFile(const char *fname, long startpos=0, long length=-1)
Load a file in the text view widget.
Definition: TGTextView.cxx:452
virtual Bool_t LoadBuffer(const char *txtbuf)
Load text from a text buffer. Return false in case of failure.
Definition: TGTextView.cxx:469
virtual void Clear(Option_t *="")
Clear text view widget.
Definition: TGTextView.cxx:428
virtual void AddText(TGText *text)
Add text to the view widget.
Definition: TGTextView.cxx:206
Definition: TGText.h:67
Bool_t LoadBuffer(const char *txtbuf)
Load a 0 terminated buffer. Lines will be split at ' '.
Definition: TGText.cxx:512
virtual void CenterOnParent(Bool_t croot=kTRUE, EPlacement pos=kCenter)
Position transient frame centered relative to the parent frame.
Definition: TGFrame.cxx:1913
const TGWindow * GetParent() const
Definition: TGWindow.h:85
A doubly linked list.
Definition: TList.h:44
virtual const char * GetTitle() const
Returns title of object.
Definition: TNamed.h:48
virtual const char * GetName() const
Returns name of object.
Definition: TNamed.h:47
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
Definition: TObject.h:172
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
Definition: TObject.cxx:866
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
Definition: TObject.cxx:694
void ResetBit(UInt_t f)
Definition: TObject.h:171
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
Definition: TObject.cxx:854
Wrapper for PCRE library (Perl Compatible Regular Expressions).
Definition: TPRegexp.h:97
Int_t Substitute(TString &s, const TString &r, Bool_t doDollarSubst=kTRUE)
Substitute matching part of s with r, dollar back-ref substitution is performed if doDollarSubst is t...
Definition: TPRegexp.cxx:874
Bool_t IsWorker() const
Definition: TProofLog.h:105
void Display(const char *ord="*", Int_t from=-10, Int_t to=-1)
Display the content associated with worker 'ord' from line 'from' to line 'to' inclusive.
Definition: TProofLog.cxx:131
TDatime StartTime()
Definition: TProofLog.h:67
Int_t Save(const char *ord="*", const char *fname=0, Option_t *opt="w")
Save the content associated with worker 'ord' to finel 'fname'.
Definition: TProofLog.cxx:201
Int_t Retrieve(const char *ord="*", TProofLog::ERetrieveOpt opt=TProofLog::kTrailing, const char *fname=0, const char *pattern=0)
Retrieve the content of the log file associated with worker 'ord'.
Definition: TProofLog.cxx:87
Bool_t LogToBox()
Definition: TProofLog.h:71
@ kTrailing
Definition: TProofLog.h:51
TList * GetListOfLogs() const
Definition: TProofLog.h:58
void SetLogToBox(Bool_t lgbox=kFALSE)
Definition: TProofLog.h:70
The PROOF manager interacts with the PROOF server coordinator to create or destroy a PROOF session,...
Definition: TProofMgr.h:43
virtual TProofLog * GetSessionLogs(Int_t=0, const char *=0, const char *="-v \"| SvcMsg\"", Bool_t=kFALSE)
Definition: TProofMgr.h:91
virtual Bool_t IsValid() const
Definition: TProofMgr.h:77
TProofProgressLog * fLogWindow
virtual ~TProofProgressLog()
Destructor.
TGTextButton * fClose
void Select(Int_t id, Bool_t all=kTRUE)
actions of select all/clear all button
void Init(Int_t w=700, Int_t h=600)
Init window frame for log messages.
void Rebuild()
Rebuild the log info for a new entered session.
void DoLog(Bool_t grep=kFALSE)
Display logs.
TGCheckButton * fGrepCheckInv
TGTextEntry * fUrlText
TGTextButton * fGrepButton
TGVerticalFrame * fVworkers
TGCheckButton * fAllLines
void LogMessage(const char *msg, Bool_t all)
Load/append a log msg in the log frame, if open.
void SetGrepView()
Sets the view of grep filters according to the value of checkboxes.
TGNumberEntry * fSessNum
TGTextButton * fLogNew
void LoadBuffer(const char *buffer)
Load a text buffer in the window.
void AddBuffer(const char *buffer)
Add text to the window.
void BuildLogList(Bool_t create=kFALSE)
Build the list of workers.
TGTextButton * fUrlButton
TGCheckButton * fGrepCheckCmd
void Clear(Option_t *=0)
Clear log window.
TProofProgressDialog * fDialog
TProofProgressLog(TProofProgressDialog *d, Int_t w=700, Int_t h=600)
Create a window frame for log messages.
void LoadFile(const char *file)
Load a file in the window.
TGTextEntry * fGrepText
TGNumberEntry * fLinesTo
TGCheckButton * fRawLines
TGTextEntry * fFileName
TGTextButton * fSave
TGNumberEntry * fLinesFrom
void NoLineEntry()
Enable/disable the line number entry.
void CloseWindow()
Handle close button or when closed via window manager action.
void SaveToFile()
Save the logs to a file Only the name of the file is taken, no expansion.
void Popup()
Show log window.
static TProofMgr * Mgr(const char *url)
Get instance of the effective manager for 'url' Return 0 on failure.
Definition: TProof.cxx:11697
Bool_t Connect(const char *signal, const char *receiver_class, void *receiver, const char *slot)
Non-static method is used to connect from the signal of this object to the receiver slot.
Definition: TQObject.cxx:867
Bool_t Disconnect(const char *signal=0, void *receiver=0, const char *slot=0)
Disconnects signal of this object from slot of receiver.
Definition: TQObject.cxx:1025
Basic string class.
Definition: TString.h:131
const char * Data() const
Definition: TString.h:364
@ kBoth
Definition: TString.h:262
TString & Prepend(const char *cs)
Definition: TString.h:656
Bool_t IsNull() const
Definition: TString.h:402
TString & Remove(Ssiz_t pos)
Definition: TString.h:668
TString & Append(const char *cs)
Definition: TString.h:559
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
Definition: TString.cxx:2311
void Form(const char *fmt,...)
Formats a string using a printf style format descriptor.
Definition: TString.cxx:2289
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
Definition: TString.h:634
This class represents a WWW compatible URL.
Definition: TUrl.h:35
const char * GetUrl(Bool_t withDeflt=kFALSE) const
Return full URL.
Definition: TUrl.cxx:385
const char * GetUser() const
Definition: TUrl.h:67
const char * GetHost() const
Definition: TUrl.h:69
const char * GetHostFQDN() const
Return fully qualified domain name of url host.
Definition: TUrl.cxx:467
Int_t GetPort() const
Definition: TUrl.h:80
Definition: file.py:1