Ignore:
Timestamp:
02/16/05 19:53:21 (20 years ago)
Author:
tbretz
Message:
*** empty log message ***
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/mjobs/MJob.cc

    r6177 r6553  
    2929// A base class for jobs
    3030//
     31// SetDebugEnv(0) // switch off debugging
     32// SetDebugEnv(1) // reserved
     33// SetDebugEnv(2) // print untouched resources after evtloop resources setup
     34// SetDebugEnv(3) // do 2) and debug setting env completely
     35//
    3136/////////////////////////////////////////////////////////////////////////////
    3237#include "MJob.h"
    3338
    34 #include <TEnv.h>
     39#include "MEnv.h"
    3540#include <TFile.h>
    3641#include <TSystem.h>
     
    5459// Sets fDataFlag to 0
    5560//
    56 MJob::MJob(const char *name, const char *title) : fEnv(0), fOverwrite(kFALSE), fMaxEvents(0)
     61MJob::MJob(const char *name, const char *title) : fEnv(0), fEnvDebug(0), fOverwrite(kFALSE), fMaxEvents(0)
    5762 
    5863{
     
    6166}
    6267
     68void MJob::ClearEnv()
     69{
     70    if (fEnv && TestBit(kIsOwner))
     71        delete fEnv;
     72    ResetBit(kIsOwner);
     73    fEnv=0;
     74}
     75
    6376MJob::~MJob()
    6477{
    65     if (fEnv)
    66         delete fEnv;
     78    ClearEnv();
    6779}
    6880
    6981Bool_t MJob::SetEnv(const char *env, const char *prefix)
    7082{
    71     if (fEnv)
    72     {
    73         delete fEnv;
    74         fEnv = 0;
    75     }
     83    ClearEnv();
    7684
    7785    const Bool_t fileexist = !gSystem->AccessPathName(env, kFileExists);
     
    8290    }
    8391
    84     fEnv = new TEnv(env);
     92    fEnv = new MEnv(env);
     93    SetBit(kIsOwner);
    8594
    8695    fEnvPrefix = prefix;
     
    94103}
    95104
     105void MJob::SetEnv(MEnv *env, const char *prefix)
     106{
     107    ClearEnv();
     108
     109    fEnv = env;
     110
     111    fEnvPrefix = prefix;
     112    if (!prefix)
     113        fEnvPrefix = fName.First(' ')>0 ? fName(0, fName.First(' ')) : fName;
     114
     115    if (fEnvPrefix.EndsWith("."))
     116        fEnvPrefix.Remove(fEnvPrefix.Length()-1);
     117}
     118
    96119void MJob::FixPath(TString &path) const
    97120{
     
    123146}
    124147
     148const TEnv *MJob::GetEnv() const
     149{
     150    return static_cast<const TEnv *const>(fEnv);
     151}
     152
    125153Int_t MJob::GetEnv(const char *name, Int_t dflt) const
    126154{
     
    140168Bool_t MJob::HasEnv(const char *name) const
    141169{
    142     return IsEnvDefined(*fEnv, fEnvPrefix, name, fEnvDebug);//fEnv->Lookup(Form("%s%s", fEnvPrefix.Data(), name));
     170    return IsEnvDefined(*fEnv, fEnvPrefix, name, fEnvDebug>2);//fEnv->Lookup(Form("%s%s", fEnvPrefix.Data(), name));
    143171}
    144172
     
    163191    SetMaxEvents(GetEnv("MaxEvents", fMaxEvents));
    164192    SetOverwrite(GetEnv("Overwrite", fOverwrite));
     193    SetEnvDebug( GetEnv("EnvDebug",  fEnvDebug));
    165194
    166195    return CheckEnvLocal();
     
    172201        return kTRUE;
    173202
    174     return loop.ReadEnv(*fEnv, fEnvPrefix, fEnvDebug) ? kTRUE : kFALSE;
     203    if (!loop.ReadEnv(*fEnv, fEnvPrefix, fEnvDebug>2))
     204        return kFALSE;
     205
     206    if (fEnvDebug>1)
     207        fEnv->PrintUntouched();
     208
     209    return kTRUE;
    175210}
    176211
Note: See TracChangeset for help on using the changeset viewer.