Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-15 09:18:31

0001 #ifndef PODIO_ARROWFRAMEDATA_H
0002 #define PODIO_ARROWFRAMEDATA_H
0003 
0004 #include "podio/CollectionBuffers.h"
0005 #include "podio/CollectionIDTable.h"
0006 #include "podio/GenericParameters.h"
0007 
0008 #include <memory>
0009 #include <optional>
0010 #include <string>
0011 #include <vector>
0012 
0013 namespace arrow {
0014 class Table;
0015 } // namespace arrow
0016 
0017 namespace podio {
0018 
0019 class ArrowFrameData {
0020 public:
0021   ArrowFrameData(std::shared_ptr<arrow::Table> table, int64_t rowIndex,
0022                  const std::vector<std::string>& collsToRead = {});
0023 
0024   podio::CollectionIDTable getIDTable() const;
0025   std::optional<podio::CollectionReadBuffers> getCollectionBuffers(const std::string& name);
0026   // Must return by value to satisfy the C++20 FrameDataType concept (as other backends construct it dynamically)
0027   std::vector<std::string> getAvailableCollections() const;
0028   std::unique_ptr<podio::GenericParameters> getParameters();
0029 
0030 private:
0031   std::shared_ptr<arrow::Table> m_table;
0032   int64_t m_rowIndex;
0033   std::vector<std::string> m_availableCollections;
0034   podio::CollectionIDTable m_idTable;
0035 };
0036 
0037 } // namespace podio
0038 
0039 #endif // PODIO_ARROWFRAMEDATA_H