Warning, file /jana2/src/libraries/JANA/Components/JHasDatabundleOutputs.h was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002 #pragma once
0003 #include <JANA/Components/JDatabundle.h>
0004 #include <JANA/Utils/JEventLevel.h>
0005 #include <memory>
0006
0007 class JFactorySet;
0008
0009 namespace jana::components {
0010
0011
0012 class JHasDatabundleOutputs {
0013 public:
0014 struct OutputBase {
0015 public:
0016 std::string type_name;
0017 std::vector<std::string> databundle_names;
0018 std::vector<JDatabundle*> databundles;
0019 JEventLevel level = JEventLevel::None;
0020 bool is_variadic = false;
0021
0022 const std::vector<JDatabundle*>& GetDatabundles() { return databundles; }
0023
0024 virtual void StoreData(const JFactorySet&) = 0;
0025 virtual void Reset() = 0;
0026 };
0027
0028 private:
0029 std::vector<OutputBase*> m_databundle_outputs;
0030
0031 public:
0032
0033 const std::vector<OutputBase*>& GetDatabundleOutputs() const {
0034 return m_databundle_outputs;
0035 }
0036
0037 void RegisterOutput(OutputBase* output) {
0038 m_databundle_outputs.push_back(output);
0039 }
0040 };
0041
0042
0043 }
0044
0045