23 #ifndef _SEFRAMEWORK_SOURCE_SOURCEGROUP_H
24 #define _SEFRAMEWORK_SOURCE_SOURCEGROUP_H
28 #include <type_traits>
35 namespace SourceXtractor {
71 unsigned int size()
const override;
127 : m_entangled_it(m_entangled_it) {
130 virtual ~iter() =
default;
153 auto& other_iter =
dynamic_cast<const iter&
>(other);
void setProperty(std::unique_ptr< Property > property, const PropertyId &property_id) override
iter(std::list< EntangledSource >::iterator m_entangled_it)
void merge(const SourceGroupInterface &other) override
bool equal(const IteratorImpl &other) const override
A SourceGroupInterface implementation which used a TaskProvider to compute missing properties...
virtual ~EntangledSource()=default
std::list< EntangledSource > m_sources
void addSource(std::shared_ptr< SourceInterface > source) override
SourceGroupWithOnDemandProperties & m_group
SourceGroupWithOnDemandProperties(std::shared_ptr< TaskProvider > task_provider)
const Property & getProperty(const PropertyId &property_id) const override
PropertyHolder m_property_holder
std::shared_ptr< SourceInterface > m_source
std::shared_ptr< TaskProvider > m_task_provider
iterator begin() override
void setProperty(std::unique_ptr< Property > property, const PropertyId &property_id) override
unsigned int size() const override
SourceInterface & dereference() const override
PropertyHolder m_property_holder
void decrement() override
bool operator<(const EntangledSource &other) const
std::list< EntangledSource >::iterator m_entangled_it
const_iterator cend() override
virtual ~SourceGroupWithOnDemandProperties()=default
Destructor.
void clearGroupProperties()
EntangledSource(std::shared_ptr< SourceInterface > source, SourceGroupWithOnDemandProperties &group)
const_iterator cbegin() override
void increment() override
std::shared_ptr< IteratorImpl > clone() const override
iterator removeSource(iterator pos) override
const Property & getProperty(const PropertyId &property_id) const override