Logo ROOT   6.16/01
Reference Guide
TRedirectOutputGuard.h
Go to the documentation of this file.
1// @(#)root/base:$Id$
2// Author: G. Ganis 10/10/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#ifndef ROOT_TRedirectOutputGuard
13#define ROOT_TRedirectOutputGuard
14
15//////////////////////////////////////////////////////////////////////////
16// //
17// TRedirectOutputGuard //
18// //
19// This class provides output redirection to a file in a guaranteed //
20// exception safe way. Use like this: //
21// { //
22// TRedirectOutputGuard guard(filelog, mode); //
23// ... // do something //
24// } //
25// when guard goes out of scope output is automatically redirected to //
26// the standard units in the TRedirectOutputGuard destructor. //
27// The exception mechanism takes care of calling the dtors //
28// of local objects so it is exception safe. //
29// The 'mode' options follow the fopen write modes convention; default //
30// is "a". //
31// //
32//////////////////////////////////////////////////////////////////////////
33
34#include "TSystem.h"
35
37
38 public:
39 TRedirectOutputGuard(const char *fout, const char *mode = "a")
40 { gSystem->RedirectOutput(fout, mode); }
42
43 ClassDef(TRedirectOutputGuard,0) // Exception safe output redirection
44};
45
46#endif
#define ClassDef(name, id)
Definition: Rtypes.h:324
R__EXTERN TSystem * gSystem
Definition: TSystem.h:540
TRedirectOutputGuard(const char *fout, const char *mode="a")
virtual Int_t RedirectOutput(const char *name, const char *mode="a", RedirectHandle_t *h=0)
Redirect standard output (stdout, stderr) to the specified file.
Definition: TSystem.cxx:1702