library: libCore
#include "TEnv.h"

TEnv


class description - source file - inheritance tree (.pdf)

class TEnv : public TObject

Inheritance Chart:
TObject
<-
TEnv
    private:
const char* Getvalue(const char* name) const public:
TEnv(const char* name = "") TEnv(const TEnv&) virtual ~TEnv() static TClass* Class() Bool_t Defined(const char* name) virtual const char* GetRcName() const THashList* GetTable() const virtual Int_t GetValue(const char* name, Int_t dflt) virtual Double_t GetValue(const char* name, Double_t dflt) virtual const char* GetValue(const char* name, const char* dflt) const virtual TClass* IsA() const virtual TEnvRec* Lookup(const char* n) TEnv& operator=(const TEnv&) virtual void Print(Option_t* option = "") const virtual void PrintEnv(EEnvLevel level = kEnvAll) const virtual void ReadFile(const char* fname, EEnvLevel level) virtual void Save() virtual void SaveLevel(EEnvLevel level) virtual void SetRcName(const char* name) virtual void SetValue(const char* name, const char* value, EEnvLevel level = kEnvChange, const char* type = "0") virtual void SetValue(const char* name, EEnvLevel level = kEnvChange) virtual void SetValue(const char* name, Int_t value) virtual void SetValue(const char* name, Double_t value) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) virtual void WriteFile(const char* fname, EEnvLevel level = kEnvAll)

Data Members

    private:
THashList* fTable hash table containing env records TString fRcName resource file base name

Class Description

                                                                      
 TEnv                                                                 
                                                                      
 The TEnv class reads a config file, by default .rootrc. Three types  
 of .rootrc files are read: global, user and local files. The global  
 file resides in $ROOTSYS/etc, the user file in ~/ and the local file 
 in the current working directory.                                    
 The format of the .rootrc file is similar to the .Xdefaults format:  
                                                                      
   [+]<SystemName>.<RootName|ProgName>.<name>[(type)]:  <value>       
                                                                      
 Where <SystemName> is either Unix, WinNT, MacOS or Vms,              
 <RootName> the name as given in the TApplication ctor (or "RootApp"  
 in case no explicit TApplication derived object was created),        
 <ProgName> the current program name and <name> the resource name,    
 with optionally a type specification. <value> can be either a        
 string, an integer, a float/double or a boolean with the values      
 TRUE, FALSE, ON, OFF, YES, NO, OK, NOT. Booleans will be returned as 
 an integer 0 or 1. The options [+] allows the concatenation of       
 values to the same resouce name.                                     
                                                                      
 E.g.:                                                                
                                                                      
   Unix.Rint.Root.DynamicPath: .:$ROOTSYS/lib:~/lib                   
   myapp.Root.Debug:  FALSE                                           
   TH.Root.Debug: YES                                                 
   *.Root.MemStat: 1                                                  
                                                                      
 <SystemName> and <ProgName> or <RootName> may be the wildcard "*".   
 A # in the first column starts comment line.                         
                                                                      
 For the currently defined resources (and their default values) see   
 $ROOTSYS/etc/system.rootrc.                                          
                                                                      
 Note that the .rootrc config files contain the config for all ROOT   
 based applications.                                                  
                                                                      
 To add new entries to a TEnv:                                        
 TEnv env(".myfile");                                                 
 env.SetValue("myname","value");                                      
 env.SaveLevel(kEnvLocal);                                            
                                                                      
 All new entries will be saved in the file corresponding to the       
 first SaveLevel() command.  If Save() is used, new entries go        
 into the local file by default.                                      
                                                                      


TEnv(const char *name)
 Create a resource table and read the (possibly) three resource files, i.e
 $ROOTSYS/system<name> (or ROOTETCDIR/system<name>), $HOME/<name> and
 ./<name>. ROOT always reads ".rootrc" (in TROOT::InitSystem()). You can
 read additional user defined resource files by creating addtional TEnv
 objects.

~TEnv()
 Delete the resource table.

const char* Getvalue(const char *name)
 Returns the character value for a named resouce.

Int_t GetValue(const char *name, Int_t dflt)
 Returns the integer value for a resource. If the resource is not found
 return the dflt value.

Double_t GetValue(const char *name, Double_t dflt)
 Returns the double value for a resource. If the resource is not found
 return the dflt value.

const char* GetValue(const char *name, const char *dflt)
 Returns the character value for a named resouce. If the resource is
 not found the dflt value is returned.

TEnvRec* Lookup(const char *name)
 Loop over all resource records and return the one with name.
 Return 0 in case name is not in the resoucre table.

void Print(Option_t *opt) const
 Print all resources or the global, user or local resources separately.

void PrintEnv(EEnvLevel level) const
 Print all resources for a certain level (global, user, local, changed).

void ReadFile(const char *fname, EEnvLevel level)
 Read and parse the resource file for a certain level.

void WriteFile(const char *fname, EEnvLevel level)
 Write resourse records to file fname for a certain level. Use
 level kEnvAll to write all resources.

void Save()
 Write the resource files for each level. The new files have the same
 name as the original files. The old files are renamed to *.bak.

void SaveLevel(EEnvLevel level)
 Write the resource file for a certain level.

void SetValue(const char *name, const char *value, EEnvLevel level, const char *type)
 Set the value of a resource or create a new resource.

void SetValue(const char *name, EEnvLevel level)
 Set the value of a resource or create a new resource.
 Use this method to set a resource like, "name=val".
 If just "name" is given it will be interpreted as "name=1".

void SetValue(const char *name, Int_t value)
 Set or create an integer resource value.

void SetValue(const char *name, double value)
 Set or create a double resource value.



Inline Functions


         THashList* GetTable() const
             Bool_t Defined(const char* name)
        const char* GetRcName() const
               void SetRcName(const char* name)
            TClass* Class()
            TClass* IsA() const
               void ShowMembers(TMemberInspector& insp, char* parent)
               void Streamer(TBuffer& b)
               void StreamerNVirtual(TBuffer& b)
               TEnv TEnv(const TEnv&)
              TEnv& operator=(const TEnv&)


Author: Fons Rademakers 22/09/95
Last update: root/base:$Name: $:$Id: TEnv.cxx,v 1.26 2006/03/01 12:07:24 rdm Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *


ROOT page - Class index - Class Hierarchy - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.