1 #ifndef FWCore_SOA_TableExaminer_h 2 #define FWCore_SOA_TableExaminer_h 43 size_t size() const override final {
return m_table->size(); }
45 void const*
columnAddress(
unsigned int iColumnIndex)
const override final {
46 return m_table->columnAddressByIndex(iColumnIndex);
49 std::vector<std::type_index>
columnTypes() const override final {
50 std::vector<std::type_index> returnValue;
52 columnTypesImpl<0, T::kNColumns>(returnValue);
57 std::vector<std::pair<char const*, std::type_index>> returnValue;
59 columnDescImpl<0, T::kNColumns>(returnValue);
63 const std::type_info*
typeID() const override final {
return &
typeid(
T); }
66 template <
int I,
int S>
69 using Layout =
typename T::Layout;
71 columnTypesImpl<I + 1, S>(iV);
75 template <
int I,
int S>
76 void columnDescImpl(std::vector<std::pair<char const*, std::type_index>>& iV)
const {
78 using Layout =
typename T::Layout;
81 columnDescImpl<I + 1, S>(iV);
size_t size() const override final
std::vector< std::pair< char const *, std::type_index > > columnDescriptions() const override final
void const * columnAddress(unsigned int iColumnIndex) const override final
TableExaminer< T > & operator=(const TableExaminer< T > &)=default
void columnTypesImpl(std::vector< std::type_index > &iV) const
~TableExaminer() override
void columnDescImpl(std::vector< std::pair< char const *, std::type_index >> &iV) const
const std::complex< double > I
TableExaminer(T const *iTable)
std::vector< std::type_index > columnTypes() const override final
const std::type_info * typeID() const override final
static const unsigned int kNColumns