$treeview $search $mathjax $extrastylesheet
00001 #ifndef artdaq_core_Generators_FragmentGenerator_hh 00002 #define artdaq_core_Generators_FragmentGenerator_hh 00003 00005 // FragmentGenerator is an abstract class that defines the interface for 00006 // obtaining events in artdaq. Subclasses are to override the (private) virtual 00007 // functions; users of FragmentGenerator are to invoke the public 00008 // (non-virtual) functions. 00009 // 00010 // getNext() will be called only from a single thread 00012 00013 #include "artdaq-core/Data/Fragment.hh" 00014 00015 namespace artdaq { 00024 class FragmentGenerator 00025 { 00026 public: 00030 FragmentGenerator() = default; 00031 00035 virtual ~FragmentGenerator() = default; 00036 00047 virtual bool getNext(FragmentPtrs& output) = 0; 00048 00056 virtual std::vector<Fragment::fragment_id_t> fragmentIDs() = 0; 00057 00058 private: 00059 FragmentGenerator(FragmentGenerator const&) = delete; 00060 FragmentGenerator(FragmentGenerator&&) = delete; 00061 FragmentGenerator& operator=(FragmentGenerator const&) = delete; 00062 FragmentGenerator& operator=(FragmentGenerator&&) = delete; 00063 }; 00064 } // namespace artdaq 00065 00066 #endif /* artdaq_core_Generators_FragmentGenerator_hh */