1 #ifndef __JSUPPORT__JMULTIPLEFILESCANNER__ 
    2 #define __JSUPPORT__JMULTIPLEFILESCANNER__ 
   10 #include "TChainElement.h" 
   29 namespace JPP { 
using namespace JSUPPORT; }
 
   83       const TObjArray* array = chain.GetListOfFiles();
 
   85       for (Int_t 
i = 0; 
i != array->GetEntries(); ++
i) {
 
   87         const TChainElement* p = (
const TChainElement*) array->At(
i);
 
   89         this->push_back(p->GetTitle());
 
  134       for (const_iterator 
i = file_list.begin(); 
i != file_list.end(); ++
i) {
 
  152       for (
string buffer; in >> buffer; ) {
 
  156           ifstream 
ls(buffer.c_str());
 
  167           catch(
const exception&) {
 
  168             object.addFilelist(buffer);
 
  186       for (const_iterator 
i = 
object.begin(); 
i != 
object.end(); ++
i) {
 
  187         out << *
i << std::endl;
 
  198   template<
class T = JNullType>
 
  216                         JTYPELIST<JLimit, JMultipleFileScanner_t>::typelist>
 
  245       this->setLimit   (limit);
 
  271       return in >> 
object.getFilelist();
 
  286       return out << 
object.getFilelist();
 
  325     template<
class JTypelist_t>
 
  370       return this->at(index);
 
  390       if (scanner.is_open()) {
 
  410         if (counter < getUpperLimit() && index != this->size()) {
 
  414           if (!scanner.is_open()) {
 
  418           if (counter < getLowerLimit()) {
 
  419             counter += scanner.skip(getLowerLimit() - counter);
 
  422           if (!scanner.hasNext()) {
 
  437           if (scanner.is_open()) {
 
  458       return scanner.next();
 
  472       while (this->hasNext() && i != ns) {
 
  473         i += scanner.skip(ns - i);
 
  499   template<
class JHead_t, 
class JTail_t>
 
  529     template<
class JTypelist_t>
 
  582         THROW(
JException, 
"JMultipleFileScanner::skip(): inconsistent number of items skipped.");
 
  590   template<
class JHead_t>
 
  613     template<
class JTypelist_t>
 
JMultipleFileScanner_t(const std::vector< std::string > &file_list)
Constructor. 
 
virtual skip_type skip(const skip_type ns) override
Skip items. 
 
JMultipleFileScanner_t & getFilelist()
Get file list. 
 
JMultipleFileScanner(const JMultipleFileScanner< JTypelist_t > &input)
Copy constructor. 
 
Interface for object iteration with rewinding. 
 
JMultipleFileScanner()
Default constructor. 
 
virtual ~JMultipleFileScanner()
Virtual destructor. 
 
friend std::istream & operator>>(std::istream &in, JMultipleFileScanner_t &object)
Read file list from input. 
 
JRewindableObjectIterator< T >::pointer_type pointer_type
 
JMultipleFileScanner()
Default constructor. 
 
static JGlob getFilenames
Function object to get list of files for given pattern. 
 
bool is_valid(const json &js)
Check validity of JSon data. 
 
unsigned int skip_type
Type definition for number of objects to skip. 
 
JMultipleFileScanner_t(const TChain &chain)
Constructor. 
 
void setFilelist(const JMultipleFileScanner_t &file_list)
Set file list. 
 
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message. 
 
void configure(const input_type &input)
Configure. 
 
Long64_t counter_type
Type definition for counter. 
 
JMultipleFileScanner_t(const std::string &file_name)
Constructor. 
 
static const char *const FILE_LIST_FORMAT
file name extension ASCII format with list of file names 
 
JMultipleFileScanner(const input_type &file_list)
Constructor. 
 
friend std::istream & operator>>(std::istream &in, JMultipleFileScanner &object)
Read multiple file scanner from input. 
 
void addFilelist(const JMultipleFileScanner_t &file_list)
Add file list. 
 
Template definition of auxiliary base class for data structures composed of multiple base classes wit...
 
Auxiliary class for defining the range of iterations of objects. 
 
JMultipleFileScanner_t()
Default constructor. 
 
virtual bool hasNext() override
Check availability of next element. 
 
Auxiliary class for recursive type list generation. 
 
Auxiliary class for no type definition. 
 
Template implementation of class that holds pointer to object(s). 
 
JMultipleFileScanner(const input_type &file_list)
Constructor. 
 
const JMultipleFileScanner_t & getFilelist() const 
Get file list. 
 
virtual void rewind() override
Rewind. 
 
const std::string & getFilename() const 
Get current file name. 
 
JMultipleFileScanner(const input_type &file_list)
Constructor. 
 
friend std::ostream & operator<<(std::ostream &out, const JMultipleFileScanner_t &object)
Write file list to output. 
 
JMultipleFileScanner(const JMultipleFileScanner< JTypelist_t > &input)
Copy constructor. 
 
JFileScanner< T > scanner
 
JMultipleFileScanner(const input_type &file_list, const JLimit &limit)
Constructor. 
 
Auxiliary base class for list of file names. 
 
JMultipleFileScanner::input_type input_type
 
JMultipleFileScanner(const JMultipleFileScanner< JTypelist_t > &input)
Copy constructor. 
 
General purpose class for object reading from a 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. 
 
virtual const pointer_type & next() override
Get next element. 
 
friend std::ostream & operator<<(std::ostream &out, const JMultipleFileScanner &object)
Write multiple file scanner to output. 
 
Auxiliary data structure to list files in directory. 
 
Object reading from file. 
 
void configure(const input_type &input, const JLimit &limit)
Configure. 
 
std::string getFilename(const std::string &file_name)
Get file name part, i.e. part after last JEEP::PATHNAME_SEPARATOR if any. 
 
counter_type getCounter() const 
Get counter. 
 
JMultipleFileScanner(const input_type &file_list, const JLimit &limit)
Constructor. 
 
JMultipleFileScanner::input_type input_type
 
Auxiliaries for defining the range of iterations of objects. 
 
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
 
JMultipleFileScanner::input_type input_type
 
virtual void rewind() override
Rewind. 
 
JMultipleFileScanner()
Default constructor. 
 
virtual skip_type skip(const skip_type ns) override
Skip items. 
 
JMultipleFileScanner(const input_type &file_list, const JLimit &limit)
Constructor. 
 
JMultipleFileScanner_t input_type
 
JMultipleFileScanner()
Default constructor.