Jpp  18.0.0
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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 46 of file JMultipleFileScanner.hh.

Constructor & Destructor Documentation

JSUPPORT::JMultipleFileScanner_t::JMultipleFileScanner_t ( )
inline

Default constructor.

Definition at line 52 of file JMultipleFileScanner.hh.

53  {}
JSUPPORT::JMultipleFileScanner_t::JMultipleFileScanner_t ( const std::string file_name)
inline

Constructor.

Parameters
file_namefile name

Definition at line 61 of file JMultipleFileScanner.hh.

61  :
62  std::vector<std::string>(1, file_name)
63  {}
JSUPPORT::JMultipleFileScanner_t::JMultipleFileScanner_t ( const std::vector< std::string > &  file_list)
inline

Constructor.

Parameters
file_listfile list

Definition at line 71 of file JMultipleFileScanner.hh.

71  :
72  std::vector<std::string>(file_list)
73  {}
JSUPPORT::JMultipleFileScanner_t::JMultipleFileScanner_t ( const TChain &  chain)
inline

Constructor.

Parameters
chainROOT chain

Definition at line 81 of file JMultipleFileScanner.hh.

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

Member Function Documentation

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

Get file list.

Returns
list of file names

Definition at line 99 of file JMultipleFileScanner.hh.

100  {
101  return static_cast<const JMultipleFileScanner_t&>(*this);
102  }
Auxiliary base class for list of file names.
JMultipleFileScanner_t& JSUPPORT::JMultipleFileScanner_t::getFilelist ( )
inline

Get file list.

Returns
list of file names

Definition at line 110 of file JMultipleFileScanner.hh.

111  {
112  return static_cast<JMultipleFileScanner_t&>(*this);
113  }
Auxiliary base class for list of file names.
void JSUPPORT::JMultipleFileScanner_t::setFilelist ( const JMultipleFileScanner_t file_list)
inline

Set file list.

Parameters
file_listlist of file names

Definition at line 121 of file JMultipleFileScanner.hh.

122  {
123  static_cast<JMultipleFileScanner_t&>(*this) = file_list;
124  }
Auxiliary base class for list of file names.
void JSUPPORT::JMultipleFileScanner_t::addFilelist ( const JMultipleFileScanner_t file_list)
inline

Add file list.

Parameters
file_listlist of file names

Definition at line 132 of file JMultipleFileScanner.hh.

133  {
134  for (const_iterator i = file_list.begin(); i != file_list.end(); ++i) {
135  this->push_back(*i);
136  }
137  }

Friends And Related Function Documentation

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 147 of file JMultipleFileScanner.hh.

148  {
149  using namespace std;
150  using namespace JPP;
151 
152  for (string buffer; in >> buffer; ) {
153 
154  if (getFilenameExtension(buffer) == FILE_LIST_FORMAT) {
155 
156  ifstream ls(buffer.c_str());
157 
158  ls >> object;
159 
160  ls.close();
161 
162  } else {
163 
164  try {
165  object.addFilelist(getFilenames(buffer));
166  }
167  catch(const exception&) {
168  object.addFilelist(buffer);
169  }
170  }
171  }
172 
173  return in;
174  }
static JGlob getFilenames
Function object to get list of files for given pattern.
Definition: JGlob.hh:86
static const char *const FILE_LIST_FORMAT
file name extension ASCII format with list of file names
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
Auxiliary data structure to list files in directory.
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
Definition: JCanberra.sh:46
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 184 of file JMultipleFileScanner.hh.

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

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