Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:13:09

0001 #ifndef FWCore_SOA_TableExaminerBase_h
0002 #define FWCore_SOA_TableExaminerBase_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     FWCore/SOA
0006 // Class  :     TableExaminerBase
0007 //
0008 /**\class TableExaminerBase TableExaminerBase.h "TableExaminerBase.h"
0009 
0010  Description: Base class interface for examining a edm::soa::Table
0011 
0012  Usage:
0013     <usage>
0014 
0015 */
0016 //
0017 // Original Author:  Chris Jones
0018 //         Created:  Mon, 28 Aug 2017 14:22:26 GMT
0019 //
0020 
0021 // system include files
0022 #include <vector>
0023 #include <utility>
0024 #include <typeinfo>
0025 #include <typeindex>
0026 #include <cstddef>
0027 // user include files
0028 
0029 // forward declarations
0030 
0031 namespace edm {
0032   namespace soa {
0033 
0034     class TableExaminerBase {
0035     public:
0036       TableExaminerBase() = default;
0037       virtual ~TableExaminerBase() = default;
0038       TableExaminerBase(const TableExaminerBase&) = default;
0039       TableExaminerBase& operator=(const TableExaminerBase&) = default;
0040 
0041       // ---------- const member functions ---------------------
0042       virtual std::vector<std::type_index> columnTypes() const = 0;
0043 
0044       virtual std::vector<std::pair<char const*, std::type_index>> columnDescriptions() const = 0;
0045 
0046       virtual size_t size() const = 0;
0047 
0048       virtual void const* columnAddress(unsigned int iColumnIndex) const = 0;
0049 
0050       virtual const std::type_info* typeID() const = 0;
0051 
0052     private:
0053       // ---------- member data --------------------------------
0054     };
0055   }  // namespace soa
0056 }  // namespace edm
0057 
0058 #endif