Jpp  debug
the software that should make you happy
Public Member Functions | Friends | List of all members
JSUPPORT::JMultipleFileScanner_t Struct Reference

Auxiliary base class for list of file names. More...

#include <JMultipleFileScanner.hh>

Inheritance diagram for JSUPPORT::JMultipleFileScanner_t:
std::vector< std::string > JSUPPORT::JMultipleFileScanner< JNullType >

Public Member Functions

 JMultipleFileScanner_t ()
 Default constructor. More...
 
 JMultipleFileScanner_t (const std::string &file_name)
 Constructor. More...
 
 JMultipleFileScanner_t (const std::vector< std::string > &file_list)
 Constructor. More...
 
 JMultipleFileScanner_t (const TChain &chain)
 Constructor. More...
 
const JMultipleFileScanner_tgetFilelist () const
 Get file list. More...
 
JMultipleFileScanner_tgetFilelist ()
 Get file list. More...
 
void setFilelist (const JMultipleFileScanner_t &file_list)
 Set file list. More...
 
void addFilelist (const JMultipleFileScanner_t &file_list)
 Add file list. More...
 

Friends

std::istream & operator>> (std::istream &in, JMultipleFileScanner_t &object)
 Read file list from input. More...
 
std::ostream & operator<< (std::ostream &out, const JMultipleFileScanner_t &object)
 Write file list to output. More...
 

Detailed Description

Auxiliary base class for list of file names.

Definition at line 49 of file JMultipleFileScanner.hh.

Constructor & Destructor Documentation

◆ JMultipleFileScanner_t() [1/4]

JSUPPORT::JMultipleFileScanner_t::JMultipleFileScanner_t ( )
inline

Default constructor.

Definition at line 55 of file JMultipleFileScanner.hh.

56  {}

◆ JMultipleFileScanner_t() [2/4]

JSUPPORT::JMultipleFileScanner_t::JMultipleFileScanner_t ( const std::string &  file_name)
inline

Constructor.

Parameters
file_namefile name

Definition at line 64 of file JMultipleFileScanner.hh.

64  :
65  std::vector<std::string>(1, file_name)
66  {}

◆ JMultipleFileScanner_t() [3/4]

JSUPPORT::JMultipleFileScanner_t::JMultipleFileScanner_t ( const std::vector< std::string > &  file_list)
inline

Constructor.

Parameters
file_listfile list

Definition at line 74 of file JMultipleFileScanner.hh.

74  :
75  std::vector<std::string>(file_list)
76  {}

◆ JMultipleFileScanner_t() [4/4]

JSUPPORT::JMultipleFileScanner_t::JMultipleFileScanner_t ( const TChain &  chain)
inline

Constructor.

Parameters
chainROOT chain

Definition at line 84 of file JMultipleFileScanner.hh.

85  {
86  const TObjArray* array = chain.GetListOfFiles();
87 
88  for (Int_t i = 0; i != array->GetEntries(); ++i) {
89 
90  const TChainElement* p = (const TChainElement*) array->At(i);
91 
92  this->push_back(p->GetTitle());
93  }
94  }

Member Function Documentation

◆ getFilelist() [1/2]

const JMultipleFileScanner_t& JSUPPORT::JMultipleFileScanner_t::getFilelist ( ) const
inline

Get file list.

Returns
list of file names

Definition at line 102 of file JMultipleFileScanner.hh.

103  {
104  return static_cast<const JMultipleFileScanner_t&>(*this);
105  }
Auxiliary base class for list of file names.

◆ getFilelist() [2/2]

JMultipleFileScanner_t& JSUPPORT::JMultipleFileScanner_t::getFilelist ( )
inline

Get file list.

Returns
list of file names

Definition at line 113 of file JMultipleFileScanner.hh.

114  {
115  return static_cast<JMultipleFileScanner_t&>(*this);
116  }

◆ setFilelist()

void JSUPPORT::JMultipleFileScanner_t::setFilelist ( const JMultipleFileScanner_t file_list)
inline

Set file list.

Parameters
file_listlist of file names

Definition at line 124 of file JMultipleFileScanner.hh.

125  {
126  static_cast<JMultipleFileScanner_t&>(*this) = file_list;
127  }

◆ addFilelist()

void JSUPPORT::JMultipleFileScanner_t::addFilelist ( const JMultipleFileScanner_t file_list)
inline

Add file list.

Parameters
file_listlist of file names

Definition at line 135 of file JMultipleFileScanner.hh.

136  {
137  for (const_iterator i = file_list.begin(); i != file_list.end(); ++i) {
138  this->push_back(*i);
139  }
140  }

Friends And Related Function Documentation

◆ operator>>

std::istream& operator>> ( std::istream &  in,
JMultipleFileScanner_t object 
)
friend

Read file list from input.

Parameters
ininput stream
objectfile list
Returns
input stream

Definition at line 150 of file JMultipleFileScanner.hh.

151  {
152  using namespace std;
153  using namespace JPP;
154 
155  for (string buffer; in >> buffer; ) {
156 
157  if (getFilenameExtension(buffer) == FILE_LIST_FORMAT) {
158 
159  ifstream ls(buffer.c_str());
160 
161  ls >> object;
162 
163  ls.close();
164 
165  } else {
166 
167  try {
168  object.addFilelist(getFilenames(buffer));
169  }
170  catch(const exception&) {
171  object.addFilelist(buffer);
172  }
173  }
174  }
175 
176  return in;
177  }
std::string getFilenameExtension(const std::string &file_name)
Get file name extension, i.e. part after last JEEP::FILENAME_SEPARATOR if any.
Definition: JeepToolkit.hh:109
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
static const char *const FILE_LIST_FORMAT
file name extension ASCII format with list of file names
static JGlob getFilenames
Function object to get list of files for given pattern.
Definition: JGlob.hh:123
Definition: JSTDTypes.hh:14
Auxiliary data structure to list files in directory.
Definition: JFilesystem.hh:20

◆ operator<<

std::ostream& operator<< ( std::ostream &  out,
const JMultipleFileScanner_t object 
)
friend

Write file list to output.

Parameters
outoutput stream
objectfile list
Returns
output stream

Definition at line 187 of file JMultipleFileScanner.hh.

188  {
189  for (const_iterator i = object.begin(); i != object.end(); ++i) {
190  out << *i << std::endl;
191  }
192 
193  return out;
194  }

The documentation for this struct was generated from the following file: