SourceXtractorPlusPlus 1.0.3
SourceXtractor++, the next generation SExtractor
Loading...
Searching...
No Matches
SourceGroupWithOnDemandProperties.h
Go to the documentation of this file.
1
22
23#ifndef _SEFRAMEWORK_SOURCE_SOURCEGROUP_H
24#define _SEFRAMEWORK_SOURCE_SOURCEGROUP_H
25
26#include <list>
27#include <iterator>
28#include <set>
29#include <type_traits>
30
35
36namespace SourceXtractor {
37
44
45public:
46
48
53
54 iterator begin() override;
55
56 iterator end() override;
57
58 const_iterator cbegin() const override;
59
60 const_iterator cend() const override;
61
62 const_iterator begin() const override;
63
64 const_iterator end() const override;
65
66 void addSource(std::unique_ptr<SourceInterface> source) override;
67
68 iterator removeSource(iterator pos) override;
69
70 void merge(SourceGroupInterface&& other) override;
71
72 unsigned int size() const override;
73
76
77protected:
78
79 const Property& getProperty(const PropertyId& property_id) const override;
80
81 void setProperty(std::unique_ptr<Property> property, const PropertyId& property_id) override;
82
83private:
84
85 class EntangledSource;
89
91
92}; /* End of SourceGroup class */
93
94
95
120
121} /* namespace SourceXtractor */
122
123#endif
A class providing a simple implementation of a container of properties.
Identifier used to set and retrieve properties.
Definition PropertyId.h:40
Base class for all Properties. (has no actual content).
Definition Property.h:33
Defines the interface used to group sources.
std::list< SourceWrapper >::const_iterator const_iterator
std::list< SourceWrapper >::iterator iterator
const Property & getProperty(const PropertyId &property_id) const override
void setProperty(std::unique_ptr< Property > property, const PropertyId &property_id) override
EntangledSource(std::shared_ptr< SourceInterface > source, SourceGroupWithOnDemandProperties &group)
virtual ~SourceGroupWithOnDemandProperties()=default
Destructor.
SourceGroupWithOnDemandProperties(std::shared_ptr< TaskProvider > task_provider)
const Property & getProperty(const PropertyId &property_id) const override
void setProperty(std::unique_ptr< Property > property, const PropertyId &property_id) override
void addSource(std::unique_ptr< SourceInterface > source) override
The SourceInterface is an abstract "source" that has properties attached to it.
const PropertyType & getProperty(unsigned int index=0) const
Convenience template method to call getProperty() with a more user-friendly syntax.