65 : log(logger), gevent_header(header) {
67 integralPayloads =
new std::vector<GIntegralPayload*>();
87 for (
auto* payload : *integralPayloads) {
delete payload; }
88 delete integralPayloads;
117 if (payload.size() == 5) {
118 int crate = payload[0];
119 int slot = payload[1];
120 int channel = payload[2];
121 int charge = payload[3];
122 int time = payload[4];
125 auto gpayload =
new GIntegralPayload(crate, slot, channel, charge, time, log);
126 integralPayloads->push_back(gpayload);
127 log->
debug(
NORMAL,
" adding integral payload for crate ", crate,
" slot ", slot,
" channel ", channel,
128 " charge ", charge,
" time ", time);
183 [[nodiscard]]
inline const std::vector<GIntegralPayload*>*
getIntegralPayload()
const {
return integralPayloads; }
196 std::shared_ptr<GLogger> log;
198 std::vector<GIntegralPayload*>* integralPayloads;
Owns one frame header and the list of payloads accumulated for that frame.
~GFrameDataCollection()
Destructor.
const GFrameHeader * getHeader() const
Returns the owned frame header.
bool shouldWriteFrame() const
Placeholder decision hook indicating whether this frame should be emitted.
void addIntegralPayload(std::vector< int > payload) const
Add one integral payload to this frame.
long int getFrameID() const
Convenience getter for the frame ID.
const std::vector< GIntegralPayload * > * getIntegralPayload() const
Returns the stored payload pointers.
GFrameDataCollection(GFrameHeader *header, std::shared_ptr< GLogger > logger)
Construct a frame data collection.
void addEvent(int evn)
Placeholder for adding event-level information into the frame.
void debug(debug_type type, Args &&... args) const
void error(int exit_code, Args &&... args) const
Defines GIntegralPayload, one integrated electronics payload sample.
Shared constants, schema keys, and error codes for the GData module.
constexpr int ERR_WRONGPAYLOAD
Packed payload vector has an unexpected size or layout.
Stores one integrated readout payload sample.