Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-04-19 09:13:41

0001 // -*- C++ -*-
0002 //
0003 // This file is part of YODA -- Yet more Objects for Data Analysis
0004 // Copyright (C) 2008-2024 The YODA collaboration (see AUTHORS for details)
0005 //
0006 #ifndef YODA_READERYODA_H
0007 #define YODA_READERYODA_H
0008 
0009 #include "YODA/Reader.h"
0010 
0011 namespace YODA {
0012 
0013 
0014   /// Persistency reader from YODA text data format.
0015   class ReaderYODA : public Reader {
0016   public:
0017 
0018     /// Singleton creation function
0019     static Reader& create();
0020 
0021     /// Disable copy and move constructors
0022     ReaderYODA(const ReaderYODA&) = delete;
0023     ReaderYODA(ReaderYODA&&) = delete;
0024 
0025     /// Disable copy and move assignments
0026     void operator=(const ReaderYODA&) = delete;
0027     void operator=(ReaderYODA&&) = delete;
0028 
0029     void read(std::istream& stream, std::vector<AnalysisObject*>& aos,
0030                                     const std::string& match = "",
0031                                     const std::string& unmatch = "");
0032 
0033     // Include definitions of all read methods (all fulfilled by Reader::read(...))
0034     #include "YODA/ReaderMethods.icc"
0035 
0036   private:
0037 
0038     /// Private constructor, since it's a singleton.
0039     ReaderYODA() { }
0040 
0041     /// Helper function to load most common types
0042     template<typename... Args>
0043     void registerDefaultTypes();
0044 
0045   };
0046 
0047 
0048 }
0049 
0050 #endif