3#include <hipo4/writer.h>
20 using put_func = void (*)(hipo::bank*,
void *,int, int);
25 using data_addrs_to_func = std::vector<std::unique_ptr<std::pair< void (*)(hipo::bank*,
void *,int, int),
void* >>>;
45 void bank(
string bankName,
string schemaStr,
int group=100);
46 void linkItemFunc(
string bankName,
string itemName,
void* addr);
49 int32_t&
intItem(
string bankName,
string itemName);
50 int16_t&
shortItem(
string bankName,
string itemName);
51 int8_t&
byteItem(
string bankName,
string itemName);
52 int64_t&
longItem(
string bankName,
string itemName);
53 float&
floatItem(
string bankName,
string itemName);
54 double&
doubleItem(
string bankName,
string itemName);
61 _banks[index]->setRows(length);
66 void open(){_writer.open(_filename.data());}
78 std::vector<data_addrs_to_func> _itemLinksAndPuts;
82 std::vector<std::vector<int_uptr > > _itemInts;
83 std::vector<std::vector<short_uptr > > _itemShorts;
84 std::vector<std::vector<byte_uptr > > _itemBytes;
85 std::vector<std::vector<long_uptr > > _itemLongs;
86 std::vector<std::vector<float_uptr > > _itemFloats;
87 std::vector<std::vector<double_uptr > > _itemDoubles;
92 std::map<string, uint> _schemaID;
95 const std::map<int,int> _typeToPos{{3,0},{2,1},{1,2},{8,3},{4,4},{5,5}};
105#pragma hipo::std::unique_ptr<pair<void(*)(hipo::bank*,void*,int,int),void*>;
void fillRows()
Definition ntuple_writer.cpp:180
int8_t & byteItem(string bankName, string itemName)
Definition ntuple_writer.cpp:77
float & floatItem(string bankName, string itemName)
Definition ntuple_writer.cpp:97
void linkItemFunc(string bankName, string itemName, void *addr)
Definition ntuple_writer.cpp:124
void clear()
Definition ntuple_writer.h:57
void open()
Definition ntuple_writer.h:66
double & doubleItem(string bankName, string itemName)
Definition ntuple_writer.cpp:107
void close()
Definition ntuple_writer.h:67
int64_t & longItem(string bankName, string itemName)
Definition ntuple_writer.cpp:87
void copyRow(int index)
Definition ntuple_writer.cpp:159
virtual ~ntuple_writer()=default
int16_t & shortItem(string bankName, string itemName)
Definition ntuple_writer.cpp:67
void fill()
Definition ntuple_writer.cpp:135
void bank(string bankName, string schemaStr, int group=100)
Definition ntuple_writer.cpp:33
int32_t & intItem(string bankName, string itemName)
Definition ntuple_writer.cpp:57
void initBank(int index, int length)
Definition ntuple_writer.h:60
Definition ntuple_reader.cpp:4
std::unique_ptr< int64_t > long_uptr
Definition ntuple_writer.h:30
std::unique_ptr< int16_t > short_uptr
Definition ntuple_writer.h:28
std::vector< bank_uptr > bank_uptrs
Definition ntuple_writer.h:16
std::unique_ptr< hipo::schema > schema_uptr
Definition ntuple_writer.h:13
std::unique_ptr< double > double_uptr
Definition ntuple_writer.h:32
std::pair< hipo::put_func, void * > addrs_to_func
Definition ntuple_writer.h:22
std::vector< hipo::put_func > put_funcs
Definition ntuple_writer.h:21
std::unique_ptr< float > float_uptr
Definition ntuple_writer.h:31
std::unique_ptr< hipo::bank > bank_uptr
Definition ntuple_writer.h:15
std::vector< std::unique_ptr< std::pair< void(*)(hipo::bank *, void *, int, int), void * > > > data_addrs_to_func
Definition ntuple_writer.h:25
std::vector< schema_uptr > schema_uptrs
Definition ntuple_writer.h:14
std::unique_ptr< int8_t > byte_uptr
Definition ntuple_writer.h:29
std::unique_ptr< hipo::addrs_to_func > addrs_to_func_uptr
Definition ntuple_writer.h:23
void(*)(hipo::bank *, void *, int, int) put_func
Definition ntuple_writer.h:20
std::vector< void * > data_addrs
Definition ntuple_writer.h:18
std::unique_ptr< int32_t > int_uptr
Definition ntuple_writer.h:27