17#ifndef __ROGUE_PROTOCOLS_BATCHER_CORE_V2_H__
18#define __ROGUE_PROTOCOLS_BATCHER_CORE_V2_H__
59 std::shared_ptr<rogue::Logging> log_;
62 std::shared_ptr<rogue::interfaces::stream::Frame> frame_;
65 std::vector<std::shared_ptr<rogue::protocols::batcher::Data> > list_;
74 std::vector<rogue::interfaces::stream::FrameIterator> tails_;
93 static std::shared_ptr<rogue::protocols::batcher::CoreV2>
create();
162 std::shared_ptr<rogue::protocols::batcher::Data>&
record(uint32_t index);
181 bool processFrame(std::shared_ptr<rogue::interfaces::stream::Frame> frame);
188typedef std::shared_ptr<rogue::protocols::batcher::CoreV2>
CoreV2Ptr;
Random-access byte iterator across a Frame payload.
Parser for SLAC AXI Batcher v2 super-frames.
static std::shared_ptr< rogue::protocols::batcher::CoreV2 > create()
Creates a CoreV2 parser instance.
rogue::interfaces::stream::FrameIterator endHeader()
Returns iterator to end of parsed header.
uint32_t count()
Returns number of parsed records.
static void setup_python()
Registers Python bindings for this class.
uint32_t tailSize()
Returns parsed tail size per record.
void initSize(uint32_t size)
Pre-reserves internal record/tail container capacity.
void reset()
Clears parsed frame state and record lists.
CoreV2()
Constructs a CoreV2 parser.
rogue::interfaces::stream::FrameIterator beginTail(uint32_t index)
Returns iterator to beginning of a parsed record tail.
uint32_t sequence()
Returns parsed batch sequence number.
uint32_t headerSize()
Returns parsed super-header size.
bool processFrame(std::shared_ptr< rogue::interfaces::stream::Frame > frame)
Parses a batched frame and populates parser state.
~CoreV2()
Destroys the parser.
rogue::interfaces::stream::FrameIterator endTail(uint32_t index)
Returns iterator to end of a parsed record tail.
std::shared_ptr< rogue::protocols::batcher::Data > & record(uint32_t index)
Returns parsed data record descriptor by index.
rogue::interfaces::stream::FrameIterator beginHeader()
Returns iterator to beginning of parsed header.
std::shared_ptr< rogue::protocols::batcher::CoreV2 > CoreV2Ptr