SourceXtractorPlusPlus  0.8
Please provide a description of the project.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
SourceXtractor::SourceGroupWithOnDemandProperties Class Reference

A SourceGroupInterface implementation which used a TaskProvider to compute missing properties. More...

#include <SourceGroupWithOnDemandProperties.h>

Inheritance diagram for SourceXtractor::SourceGroupWithOnDemandProperties:
[legend]
Collaboration diagram for SourceXtractor::SourceGroupWithOnDemandProperties:
[legend]

Classes

class  EntangledSource
 
class  iter
 

Public Member Functions

 SourceGroupWithOnDemandProperties (std::shared_ptr< TaskProvider > task_provider)
 
virtual ~SourceGroupWithOnDemandProperties ()=default
 Destructor. More...
 
iterator begin () override
 
iterator end () override
 
const_iterator cbegin () override
 
const_iterator cend () override
 
const_iterator begin () const override
 
const_iterator end () const override
 
void addSource (std::shared_ptr< SourceInterface > source) override
 
iterator removeSource (iterator pos) override
 
void merge (const SourceGroupInterface &other) override
 
unsigned int size () const override
 
- Public Member Functions inherited from SourceXtractor::SourceGroupInterface
template<typename SourceCollection >
void addAllSources (const SourceCollection &sources)
 Convenient method to add all the sources of a collection. More...
 

Protected Member Functions

const PropertygetProperty (const PropertyId &property_id) const override
 
void setProperty (std::unique_ptr< Property > property, const PropertyId &property_id) override
 
- Protected Member Functions inherited from SourceXtractor::SourceInterface
const PropertygetPropertyFromInterface (const SourceInterface &source, const PropertyId &property_id) const
 
virtual ~SourceInterface ()=default
 Destructor. More...
 
template<typename PropertyType >
const PropertyType & getProperty (unsigned int index=0) const
 Convenience template method to call getProperty() with a more user-friendly syntax. More...
 
template<typename PropertyType , typename... Args>
void setIndexedProperty (std::size_t index, Args...args)
 Convenience template method to call setProperty() with a more user-friendly syntax. More...
 
template<typename PropertyType , typename... Args>
void setProperty (Args...args)
 

Private Member Functions

void clearGroupProperties ()
 

Private Attributes

std::list< EntangledSourcem_sources
 
PropertyHolder m_property_holder
 
std::shared_ptr< TaskProviderm_task_provider
 

Additional Inherited Members

- Public Types inherited from SourceXtractor::SourceGroupInterface
using iterator = GroupIterator< SourceInterface >
 
using const_iterator = GroupIterator< const SourceInterface >
 

Detailed Description

A SourceGroupInterface implementation which used a TaskProvider to compute missing properties.

Definition at line 42 of file SourceGroupWithOnDemandProperties.h.

Constructor & Destructor Documentation

SourceXtractor::SourceGroupWithOnDemandProperties::SourceGroupWithOnDemandProperties ( std::shared_ptr< TaskProvider task_provider)

Definition at line 28 of file SourceGroupWithOnDemandProperties.cpp.

virtual SourceXtractor::SourceGroupWithOnDemandProperties::~SourceGroupWithOnDemandProperties ( )
virtualdefault

Destructor.

Member Function Documentation

void SourceXtractor::SourceGroupWithOnDemandProperties::addSource ( std::shared_ptr< SourceInterface source)
overridevirtual

Implements SourceXtractor::SourceGroupInterface.

Definition at line 56 of file SourceGroupWithOnDemandProperties.cpp.

References clearGroupProperties(), and m_sources.

Here is the call graph for this function:

SourceGroupWithOnDemandProperties::iterator SourceXtractor::SourceGroupWithOnDemandProperties::begin ( )
overridevirtual

Implements SourceXtractor::SourceGroupInterface.

Definition at line 32 of file SourceGroupWithOnDemandProperties.cpp.

References m_sources.

SourceGroupWithOnDemandProperties::const_iterator SourceXtractor::SourceGroupWithOnDemandProperties::begin ( ) const
overridevirtual

Implements SourceXtractor::SourceGroupInterface.

Definition at line 48 of file SourceGroupWithOnDemandProperties.cpp.

References m_sources.

SourceGroupWithOnDemandProperties::const_iterator SourceXtractor::SourceGroupWithOnDemandProperties::cbegin ( )
overridevirtual

Implements SourceXtractor::SourceGroupInterface.

Definition at line 40 of file SourceGroupWithOnDemandProperties.cpp.

References m_sources.

SourceGroupWithOnDemandProperties::const_iterator SourceXtractor::SourceGroupWithOnDemandProperties::cend ( )
overridevirtual

Implements SourceXtractor::SourceGroupInterface.

Definition at line 44 of file SourceGroupWithOnDemandProperties.cpp.

References m_sources.

void SourceXtractor::SourceGroupWithOnDemandProperties::clearGroupProperties ( )
private

Definition at line 100 of file SourceGroupWithOnDemandProperties.cpp.

References SourceXtractor::PropertyHolder::clear(), m_property_holder, and m_sources.

Referenced by addSource(), merge(), and removeSource().

Here is the call graph for this function:

SourceGroupWithOnDemandProperties::iterator SourceXtractor::SourceGroupWithOnDemandProperties::end ( )
overridevirtual

Implements SourceXtractor::SourceGroupInterface.

Definition at line 36 of file SourceGroupWithOnDemandProperties.cpp.

References m_sources.

SourceGroupWithOnDemandProperties::const_iterator SourceXtractor::SourceGroupWithOnDemandProperties::end ( ) const
overridevirtual

Implements SourceXtractor::SourceGroupInterface.

Definition at line 52 of file SourceGroupWithOnDemandProperties.cpp.

References m_sources.

const Property & SourceXtractor::SourceGroupWithOnDemandProperties::getProperty ( const PropertyId property_id) const
overrideprotectedvirtual

Returns a reference to the requested property. The property may be computed if needed Throws a PropertyNotFoundException if the property cannot be provided.

Implements SourceXtractor::SourceInterface.

Definition at line 79 of file SourceGroupWithOnDemandProperties.cpp.

References SourceXtractor::GroupTask::computeProperties(), SourceXtractor::PropertyHolder::getProperty(), SourceXtractor::PropertyHolder::isPropertySet(), m_property_holder, and m_task_provider.

Here is the call graph for this function:

void SourceXtractor::SourceGroupWithOnDemandProperties::merge ( const SourceGroupInterface other)
overridevirtual

Implements SourceXtractor::SourceGroupInterface.

Definition at line 68 of file SourceGroupWithOnDemandProperties.cpp.

References clearGroupProperties(), and m_sources.

Here is the call graph for this function:

SourceGroupWithOnDemandProperties::iterator SourceXtractor::SourceGroupWithOnDemandProperties::removeSource ( iterator  pos)
overridevirtual

Implements SourceXtractor::SourceGroupInterface.

Definition at line 61 of file SourceGroupWithOnDemandProperties.cpp.

References clearGroupProperties(), SourceXtractor::SourceGroupInterface::GroupIterator< T >::getImpl(), SourceXtractor::SourceGroupWithOnDemandProperties::iter::m_entangled_it, and m_sources.

Here is the call graph for this function:

void SourceXtractor::SourceGroupWithOnDemandProperties::setProperty ( std::unique_ptr< Property property,
const PropertyId property_id 
)
overrideprotectedvirtual

Implements SourceXtractor::SourceInterface.

Definition at line 96 of file SourceGroupWithOnDemandProperties.cpp.

References m_property_holder, std::move(), and SourceXtractor::PropertyHolder::setProperty().

Here is the call graph for this function:

unsigned int SourceXtractor::SourceGroupWithOnDemandProperties::size ( ) const
overridevirtual

Implements SourceXtractor::SourceGroupInterface.

Definition at line 107 of file SourceGroupWithOnDemandProperties.cpp.

References m_sources.

Member Data Documentation

PropertyHolder SourceXtractor::SourceGroupWithOnDemandProperties::m_property_holder
private
std::list<EntangledSource> SourceXtractor::SourceGroupWithOnDemandProperties::m_sources
private
std::shared_ptr<TaskProvider> SourceXtractor::SourceGroupWithOnDemandProperties::m_task_provider
private

Definition at line 88 of file SourceGroupWithOnDemandProperties.h.

Referenced by getProperty().


The documentation for this class was generated from the following files: