Re: [ROOT] .rootrc files

From: Dmitri Litvintsev (litvinse@cdfsga.fnal.gov)
Date: Wed Apr 05 2000 - 19:20:42 MEST


On Wed, 5 Apr 2000, Fons Rademakers wrote:

>    I've now made most functions in the class virtual.
> However, most should work without having to derive a special class.
> You just should be able to use TEnv like it is:
> 
> TEnv *e = new TEnv("/my/path/.myenvrc");

yes you are right as long as local file is supposed to be used. As I said
I wanted to duplicate ROOT's mechanism of reading:

  1) Project system default file (${PROJECT}/system.myenvrc) 
     analogous to kEnvGlobal
  2) User default (${HOME}/.myenvrc) is it exists 
     analogous to kEnvUser
  should user wish to save something it goes to ${HOME}/.myenvrc file. 

 just using 'TEnv' as you recommended doesn't help (or am I wrong here)


> e->Print();
> e->SetValue("bla", "-1")
> e->SaveLevel(kEnvLocal)
> 
> I don't see any problem with using -1 as value. It works for me.

Sorry, I wasn't specific enough - I don't have trouble saving values.
I have problem with reading values:

root [0] TEnv* e = new TEnv(".evdrc");
root [1] e->Print()
TCotDisplay.TrackColor:   1                              [User]
TCotDisplay.WindowWidth:  536                            [User]
TCotDisplay.WindowHeight: 649                            [User]
TCotDisplay.WindowXPosition: 26                             [User]
TCotDisplay.WindowYPosition: 25                             [User]
TCotDisplay.ViewPadColor: 0                              [User]
TLegoDisplay.WindowWidth: 536                            [User]
TLegoDisplay.WindowHeight: 649                            [User]
TLegoDisplay.WindowXPosition: 973                            [User]
TLegoDisplay.WindowYPosition: 193                            [User]
TLegoDisplay.ViewPadColor: 1                              [User]
TLegoDisplay.Phi:         -417                           [User]
TLegoDisplay.Theta:       38                             [User]
TLegoDisplay.Psi:         0                              [User]
root [2] Int_t phi = e->GetValue("TLegoDisplay.Phi",0);
root [3] cout << phi << endl;
0
root [4] e->SetValue("TLegoDisplay.Phi","417");
root [5] e->Save()
root [6] phi = e->GetValue("TLegoDisplay.Phi",0);
root [7] cout << phi << endl;
417

as you see positive value of phi has been read out in contrast to negative

show me where I'm wrong here

> 
> Cheers, Fons.
> 
> 
> 
> Dmitri Litvintsev wrote:
> > 
> > Dear Rooters,
> > 
> > I've been developing ROOT application and want read/save
> > application specific resources from/to a file which is not
> > located in $(ROOTSYS) and called differently.
> > 
> > e.g.
> > 
> >   default file for all users to fetch at start up:
> >     ${OUR_PROJECT}/${MY_APPLICATION}/.myenvrc
> > 
> > if user modified and saved some applicaion specific resources
> > it should go to his ${HOME}/.myenvrc
> > 
> > I see that there is a class TEnv which probably does this for the
> > ROOT.
> > 
> > I thought of using TEnv class.
> > 
> > And overide a couple of relevant methods. The trouble is
> > that:
> >          Save()
> >          SaveLevel()
> >          SetValue()
> > 
> > are not virtual. May I ask to make all methods of this class
> > virtual?
> > 
> > regards,
> > Dmitri Litvintsev
> > 
> > /----------------------------------------------------------\
> > | Tel:       (630) 840 5005                                |
> > | FAX:       (630) 840 2968                                |
> > | office:    169-E CDF Trailers                            |
> > | E-mail:    litvinse@fnal.gov                             |
> > \----------------------------------------------------------/
> 
> -- 
> Org:    CERN, European Laboratory for Particle Physics.
> Mail:   1211 Geneve 23, Switzerland
> E-Mail: Fons.Rademakers@cern.ch              Phone: +41 22 7679248
> WWW:    http://root.cern.ch/~rdm/            Fax:   +41 22 7677910
> 



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:22 MET