File indexing completed on 2026-07-31 09:09:09
0001
0002
0003
0004 #pragma once
0005
0006 #include <JANA/Topology/JArrow.h>
0007
0008 class JEventPool;
0009 class JEventSource;
0010 class JEventUnfolder;
0011 class JEventFolder;
0012 class JEventProcessor;
0013 class JEvent;
0014
0015
0016 class JMapArrow : public JArrow {
0017
0018 public:
0019 enum PortIndex {EVENT_IN=0, EVENT_OUT=1};
0020
0021 private:
0022 bool m_parallel_source = false;
0023 std::vector<JEventUnfolder*> m_unfolders;
0024 std::vector<JEventFolder*> m_folders;
0025 std::vector<JEventProcessor*> m_procs;
0026
0027 public:
0028 JMapArrow(std::string name, JEventLevel level);
0029
0030 void SetParallelSource(bool is_parallel);
0031 void AddUnfolder(JEventUnfolder* unfolder);
0032 void AddFolder(JEventFolder* folder);
0033 void AddProcessor(JEventProcessor* proc);
0034
0035 void Fire(JEvent* input, OutputData& outputs, size_t& output_count, JArrow::FireResult& status);
0036
0037 void Initialize() final;
0038 void Finalize() final;
0039 };
0040