File indexing completed on 2025-01-18 10:01:39
0001
0002
0003
0004 #pragma once
0005
0006 #include <JANA/Topology/JPipelineArrow.h>
0007
0008 class JEventPool;
0009 class JEventProcessor;
0010 class JEvent;
0011
0012 using Event = std::shared_ptr<JEvent>;
0013 using EventQueue = JMailbox<Event*>;
0014
0015 class JEventTapArrow : public JPipelineArrow<JEventTapArrow, Event> {
0016
0017 private:
0018 std::vector<JEventProcessor*> m_procs;
0019
0020 public:
0021 JEventTapArrow(std::string name, EventQueue *input_queue, EventQueue *output_queue, JEventPool *pool);
0022
0023 void add_processor(JEventProcessor* proc);
0024 void process(Event* event, bool& success, JArrowMetrics::Status& status);
0025 void initialize() final;
0026 void finalize() final;
0027 };
0028