SourceXtractorPlusPlus  0.10
Please provide a description of the project.
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
SourceXtractor::SimpleSourceGroup Class Reference

A bare bones implementation of SourceGroupInterface meant to be used to implement unit tests. More...

#include <SimpleSourceGroup.h>

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

Public Member Functions

virtual ~SimpleSourceGroup ()=default
 
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
 
unsigned int size () const override
 
void merge (const SourceGroupInterface &other) override
 
template<typename PropertyType >
const PropertyType & getProperty (unsigned int index=0) const
 Convenience template method to call getProperty() with a more user-friendly syntax. More...
 
virtual const PropertygetProperty (const PropertyId &property_id) const=0
 
template<typename PropertyType , typename ... Args>
void setProperty (Args... args)
 
virtual void setProperty (std::unique_ptr< Property > property, const PropertyId &property_id)=0
 
- 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...
 
template<typename PropertyType >
const PropertyType & getProperty (unsigned int index=0) const
 Convenience template method to call getProperty() with a more user-friendly syntax. More...
 
virtual const PropertygetProperty (const PropertyId &property_id) const=0
 
template<typename PropertyType , typename ... Args>
void setProperty (Args... args)
 
virtual void setProperty (std::unique_ptr< Property > property, const PropertyId &property_id)=0
 
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...
 

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
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 Attributes

std::list< SourceWrapperm_sources
 
PropertyHolder m_property_holder
 

Additional Inherited Members

- Public Types inherited from SourceXtractor::SourceGroupInterface
using iterator = std::list< SourceWrapper >::iterator
 
using const_iterator = std::list< SourceWrapper >::const_iterator
 

Detailed Description

A bare bones implementation of SourceGroupInterface meant to be used to implement unit tests.

Definition at line 39 of file SimpleSourceGroup.h.

Constructor & Destructor Documentation

◆ ~SimpleSourceGroup()

virtual SourceXtractor::SimpleSourceGroup::~SimpleSourceGroup ( )
virtualdefault

Member Function Documentation

◆ addSource()

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

Implements SourceXtractor::SourceGroupInterface.

Definition at line 50 of file SimpleSourceGroup.cpp.

References std::list< T >::emplace_back(), and m_sources.

Here is the call graph for this function:

◆ begin() [1/2]

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

◆ begin() [2/2]

SimpleSourceGroup::const_iterator SourceXtractor::SimpleSourceGroup::begin ( )
overridevirtual

Implements SourceXtractor::SourceGroupInterface.

Definition at line 26 of file SimpleSourceGroup.cpp.

References std::list< T >::begin(), and m_sources.

Here is the call graph for this function:

◆ cbegin()

SimpleSourceGroup::const_iterator SourceXtractor::SimpleSourceGroup::cbegin ( )
overridevirtual

Implements SourceXtractor::SourceGroupInterface.

Definition at line 34 of file SimpleSourceGroup.cpp.

References std::list< T >::cbegin(), and m_sources.

Here is the call graph for this function:

◆ cend()

SimpleSourceGroup::const_iterator SourceXtractor::SimpleSourceGroup::cend ( )
overridevirtual

Implements SourceXtractor::SourceGroupInterface.

Definition at line 38 of file SimpleSourceGroup.cpp.

References std::list< T >::cend(), and m_sources.

Here is the call graph for this function:

◆ end() [1/2]

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

◆ end() [2/2]

SimpleSourceGroup::const_iterator SourceXtractor::SimpleSourceGroup::end ( )
overridevirtual

Implements SourceXtractor::SourceGroupInterface.

Definition at line 30 of file SimpleSourceGroup.cpp.

References std::list< T >::end(), and m_sources.

Here is the call graph for this function:

◆ getProperty() [1/3]

const Property & SourceXtractor::SimpleSourceGroup::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 67 of file SimpleSourceGroup.cpp.

References SourceXtractor::PropertyHolder::getProperty(), and m_property_holder.

Here is the call graph for this function:

◆ getProperty() [2/3]

virtual const Property& SourceXtractor::SourceInterface::getProperty

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

◆ getProperty() [3/3]

template<typename PropertyType >
const PropertyType& SourceXtractor::SourceInterface::getProperty ( typename PropertyType  )
inline

Convenience template method to call getProperty() with a more user-friendly syntax.

Definition at line 57 of file SourceInterface.h.

◆ merge()

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

Implements SourceXtractor::SourceGroupInterface.

Definition at line 59 of file SimpleSourceGroup.cpp.

References SourceXtractor::PropertyHolder::clear(), std::list< T >::emplace_back(), m_property_holder, and m_sources.

Here is the call graph for this function:

◆ removeSource()

SourceGroupInterface::iterator SourceXtractor::SimpleSourceGroup::removeSource ( iterator  pos)
overridevirtual

Implements SourceXtractor::SourceGroupInterface.

Definition at line 54 of file SimpleSourceGroup.cpp.

References std::list< T >::erase(), and m_sources.

Here is the call graph for this function:

◆ setProperty() [1/3]

template<typename PropertyType , typename ... Args>
void SourceXtractor::SourceInterface::setProperty ( typename PropertyType  ,
typename ...  Args 
)
inline

Definition at line 72 of file SourceInterface.h.

◆ setProperty() [2/3]

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

Implements SourceXtractor::SourceInterface.

Definition at line 71 of file SimpleSourceGroup.cpp.

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

Here is the call graph for this function:

◆ setProperty() [3/3]

virtual void SourceXtractor::SourceInterface::setProperty

◆ size()

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

Implements SourceXtractor::SourceGroupInterface.

Definition at line 75 of file SimpleSourceGroup.cpp.

References m_sources, and std::list< T >::size().

Here is the call graph for this function:

Member Data Documentation

◆ m_property_holder

PropertyHolder SourceXtractor::SimpleSourceGroup::m_property_holder
private

Definition at line 77 of file SimpleSourceGroup.h.

Referenced by getProperty(), merge(), and setProperty().

◆ m_sources

std::list<SourceWrapper> SourceXtractor::SimpleSourceGroup::m_sources
private

Definition at line 76 of file SimpleSourceGroup.h.

Referenced by addSource(), begin(), cbegin(), cend(), end(), merge(), removeSource(), and size().


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