CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Static Public Member Functions | Private Attributes
edm::InputFile Class Reference

#include <InputFile.h>

Public Member Functions

void Close ()
 
void eventReadFromFile () const
 
TObject * Get (char const *name)
 
TFileCacheRead * GetCacheRead () const
 
 InputFile (char const *fileName, char const *msg, InputType inputType)
 
 InputFile (InputFile const &)=delete
 
void inputFileOpened (std::string const &logicalFileName, std::string const &inputType, std::string const &moduleName, std::string const &label, std::string const &fid, std::vector< std::string > const &branchNames)
 
void logFileAction (char const *msg, char const *fileName) const
 
InputFileoperator= (InputFile const &)=delete
 
void reportInputLumiSection (unsigned int run, unsigned int lumi) const
 
void reportInputRunNumber (unsigned int run) const
 
void SetCacheRead (TFileCacheRead *tfcr)
 
 ~InputFile ()
 

Static Public Member Functions

static void reportFallbackAttempt (std::string const &pfn, std::string const &logicalFileName, std::string const &errorMessage)
 
static void reportReadBranch (InputType inputType, std::string const &branchname)
 
static void reportReadBranches ()
 
static void reportSkippedFile (std::string const &fileName, std::string const &logicalFileName)
 

Private Attributes

std::unique_ptr< TFile > file_
 
std::string fileName_
 
InputType inputType_
 
JobReport::Token reportToken_
 

Detailed Description

Definition at line 20 of file InputFile.h.

Constructor & Destructor Documentation

edm::InputFile::InputFile ( char const *  fileName,
char const *  msg,
InputType  inputType 
)
explicit

Definition at line 13 of file InputFile.cc.

References file_, and logFileAction().

13  :
14  file_(), fileName_(fileName), reportToken_(0), inputType_(inputType) {
15 
17  file_.reset(TFile::Open(fileName));
18  if(!file_) {
19  return;
20  }
21  if(file_->IsZombie()) {
22  file_.reset();
23  return;
24  }
25  logFileAction(" Successfully opened file ", fileName);
26  }
JobReport::Token reportToken_
Definition: InputFile.h:52
InputType inputType_
Definition: InputFile.h:53
void logFileAction(char const *msg, char const *fileName) const
Definition: InputFile.cc:96
std::unique_ptr< TFile > file_
Definition: InputFile.h:50
std::string fileName_
Definition: InputFile.h:51
edm::InputFile::~InputFile ( )

Definition at line 28 of file InputFile.cc.

References Close().

28  {
29  Close();
30  }
void Close()
Definition: InputFile.cc:81
edm::InputFile::InputFile ( InputFile const &  )
delete

Member Function Documentation

void edm::InputFile::Close ( )

Definition at line 81 of file InputFile.cc.

References cppFunctionSkipper::exception, file_, fileName_, inputType_, logFileAction(), and reportToken_.

Referenced by ~InputFile().

81  {
82  if(file_->IsOpen()) {
83  file_->Close();
84  try {
85  logFileAction(" Closed file ", fileName_.c_str());
86  Service<JobReport> reportSvc;
87  reportSvc->inputFileClosed(inputType_, reportToken_);
88  } catch(std::exception) {
89  // If Close() called in a destructor after an exception throw, the services may no longer be active.
90  // Therefore, we catch any reasonable new exception.
91  }
92  }
93  }
JobReport::Token reportToken_
Definition: InputFile.h:52
InputType inputType_
Definition: InputFile.h:53
void logFileAction(char const *msg, char const *fileName) const
Definition: InputFile.cc:96
std::unique_ptr< TFile > file_
Definition: InputFile.h:50
std::string fileName_
Definition: InputFile.h:51
void edm::InputFile::eventReadFromFile ( ) const

Definition at line 51 of file InputFile.cc.

References inputType_, and reportToken_.

51  {
52  Service<JobReport> reportSvc;
53  reportSvc->eventReadFromFile(inputType_, reportToken_);
54  }
JobReport::Token reportToken_
Definition: InputFile.h:52
InputType inputType_
Definition: InputFile.h:53
TObject* edm::InputFile::Get ( char const *  name)
inline

Definition at line 45 of file InputFile.h.

References file_.

45 {return file_->Get(name);}
std::unique_ptr< TFile > file_
Definition: InputFile.h:50
TFileCacheRead* edm::InputFile::GetCacheRead ( ) const
inline

Definition at line 46 of file InputFile.h.

References file_.

Referenced by edm::roottree::trainCache().

46 {return file_->GetCacheRead();}
std::unique_ptr< TFile > file_
Definition: InputFile.h:50
void edm::InputFile::inputFileOpened ( std::string const &  logicalFileName,
std::string const &  inputType,
std::string const &  moduleName,
std::string const &  label,
std::string const &  fid,
std::vector< std::string > const &  branchNames 
)

Definition at line 33 of file InputFile.cc.

References fileName_, reportToken_, and AlCaHLTBitMon_QueryRunRegistry::string.

38  {
39  Service<JobReport> reportSvc;
40  reportToken_ = reportSvc->inputFileOpened(fileName_,
41  logicalFileName,
42  std::string(),
43  inputType,
44  moduleName,
45  label,
46  fid,
47  branchNames);
48  }
JobReport::Token reportToken_
Definition: InputFile.h:52
std::string moduleName(Provenance const &provenance)
Definition: Provenance.cc:27
std::string fileName_
Definition: InputFile.h:51
list fid
Definition: NewTree.py:51
void edm::InputFile::logFileAction ( char const *  msg,
char const *  fileName 
) const

Definition at line 96 of file InputFile.cc.

References convertXMLtoSQLite_cfg::fileName, and edm::FlushMessageLog().

Referenced by Close(), and InputFile().

96  {
97  LogAbsolute("fileAction") << std::setprecision(0) << TimeOfDay() << msg << fileName;
99  }
void FlushMessageLog()
InputFile& edm::InputFile::operator= ( InputFile const &  )
delete
void edm::InputFile::reportFallbackAttempt ( std::string const &  pfn,
std::string const &  logicalFileName,
std::string const &  errorMessage 
)
static

Definition at line 75 of file InputFile.cc.

Referenced by edm::RootInputFileSequence::initFile().

75  {
76  Service<JobReport> reportSvc;
77  reportSvc->reportFallbackAttempt(pfn, logicalFileName, errorMessage);
78  }
list pfn
Definition: dbtoconf.py:76
void edm::InputFile::reportInputLumiSection ( unsigned int  run,
unsigned int  lumi 
) const

Definition at line 63 of file InputFile.cc.

63  {
64  Service<JobReport> reportSvc;
65  reportSvc->reportInputLumiSection(run, lumi);
66  }
tuple lumi
Definition: fjr2json.py:35
void edm::InputFile::reportInputRunNumber ( unsigned int  run) const

Definition at line 57 of file InputFile.cc.

57  {
58  Service<JobReport> reportSvc;
59  reportSvc->reportInputRunNumber(run);
60  }
void edm::InputFile::reportReadBranch ( InputType  inputType,
std::string const &  branchname 
)
static

Definition at line 108 of file InputFile.cc.

Referenced by edm::RootDelayedReader::getProduct_().

108  {
109  Service<JobReport> reportSvc;
110  reportSvc->reportReadBranch(inputType, branchName);
111  }
void edm::InputFile::reportReadBranches ( )
static

Definition at line 102 of file InputFile.cc.

Referenced by edm::PoolSource::endJob().

102  {
103  Service<JobReport> reportSvc;
104  reportSvc->reportReadBranches();
105  }
void edm::InputFile::reportSkippedFile ( std::string const &  fileName,
std::string const &  logicalFileName 
)
static

Definition at line 69 of file InputFile.cc.

Referenced by edm::RootInputFileSequence::initFile().

69  {
70  Service<JobReport> reportSvc;
71  reportSvc->reportSkippedFile(fileName, logicalFileName);
72  }
void edm::InputFile::SetCacheRead ( TFileCacheRead *  tfcr)
inline

Definition at line 47 of file InputFile.h.

References file_, and NULL.

Referenced by edm::roottree::trainCache().

47 {file_->SetCacheRead(tfcr, NULL, TFile::kDoNotDisconnect);}
#define NULL
Definition: scimark2.h:8
std::unique_ptr< TFile > file_
Definition: InputFile.h:50

Member Data Documentation

std::unique_ptr<TFile> edm::InputFile::file_
private

Definition at line 50 of file InputFile.h.

Referenced by Close(), Get(), GetCacheRead(), InputFile(), and SetCacheRead().

std::string edm::InputFile::fileName_
private

Definition at line 51 of file InputFile.h.

Referenced by Close(), and inputFileOpened().

InputType edm::InputFile::inputType_
private

Definition at line 53 of file InputFile.h.

Referenced by Close(), and eventReadFromFile().

JobReport::Token edm::InputFile::reportToken_
private

Definition at line 52 of file InputFile.h.

Referenced by Close(), eventReadFromFile(), and inputFileOpened().