SourceXtractorPlusPlus  0.13
Please provide a description of the project.
Classes | Public Types | Public Member Functions | Private Types | List of all members
SourceXtractor::SourceGroupInterface Class Referenceabstract

Defines the interface used to group sources. More...

#include <SourceGroupInterface.h>

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

Classes

struct  is_shared_ptr
 
struct  is_shared_ptr< std::shared_ptr< T > >
 
class  SourceWrapper
 

Public Types

using iterator = std::list< SourceWrapper >::iterator
 
using const_iterator = std::list< SourceWrapper >::const_iterator
 

Public Member Functions

virtual iterator begin ()=0
 
virtual iterator end ()=0
 
virtual const_iterator cbegin ()=0
 
virtual const_iterator cend ()=0
 
virtual const_iterator begin () const =0
 
virtual const_iterator end () const =0
 
virtual void addSource (std::shared_ptr< SourceInterface > source)=0
 
virtual iterator removeSource (iterator pos)=0
 
virtual void merge (const SourceGroupInterface &other)=0
 
virtual unsigned int size () const =0
 
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...
 

Private Types

template<typename Collection >
using CollectionType = typename std::iterator_traits< typename Collection::iterator >::value_type
 

Additional Inherited Members

- 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)
 
virtual const PropertygetProperty (const PropertyId &property_id) const =0
 
virtual void setProperty (std::unique_ptr< Property > property, const PropertyId &property_id)=0
 

Detailed Description

Defines the interface used to group sources.

Warning: please note that the order in which the sources are added to a group is not preserved.

Definition at line 37 of file SourceGroupInterface.h.

Member Typedef Documentation

◆ CollectionType

template<typename Collection >
using SourceXtractor::SourceGroupInterface::CollectionType = typename std::iterator_traits<typename Collection::iterator>::value_type
private

Definition at line 40 of file SourceGroupInterface.h.

◆ const_iterator

Definition at line 82 of file SourceGroupInterface.h.

◆ iterator

Definition at line 81 of file SourceGroupInterface.h.

Member Function Documentation

◆ addAllSources()

template<typename SourceCollection >
void SourceXtractor::SourceGroupInterface::addAllSources ( const SourceCollection &  sources)
inline

Convenient method to add all the sources of a collection.

Definition at line 98 of file SourceGroupInterface.h.

References addSource().

Here is the call graph for this function:

◆ addSource()

virtual void SourceXtractor::SourceGroupInterface::addSource ( std::shared_ptr< SourceInterface source)
pure virtual

◆ begin() [1/2]

virtual const_iterator SourceXtractor::SourceGroupInterface::begin ( ) const
pure virtual

◆ begin() [2/2]

virtual iterator SourceXtractor::SourceGroupInterface::begin ( )
pure virtual

◆ cbegin()

virtual const_iterator SourceXtractor::SourceGroupInterface::cbegin ( )
pure virtual

◆ cend()

virtual const_iterator SourceXtractor::SourceGroupInterface::cend ( )
pure virtual

◆ end() [1/2]

virtual const_iterator SourceXtractor::SourceGroupInterface::end ( ) const
pure virtual

◆ end() [2/2]

virtual iterator SourceXtractor::SourceGroupInterface::end ( )
pure virtual

◆ getProperty() [1/2]

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() [2/2]

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

◆ merge()

virtual void SourceXtractor::SourceGroupInterface::merge ( const SourceGroupInterface other)
pure virtual

◆ removeSource()

virtual iterator SourceXtractor::SourceGroupInterface::removeSource ( iterator  pos)
pure virtual

◆ setIndexedProperty()

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

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

Definition at line 64 of file SourceInterface.h.

References SourceXtractor::SourceInterface::setProperty().

Referenced by SourceXtractor::MeasurementFrameGroupRectangleTask::computeProperties(), SourceXtractor::JacobianGroupTask::computeProperties(), and SourceXtractor::PsfTask::computeProperties().

Here is the call graph for this function:

◆ setProperty() [1/2]

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

Definition at line 72 of file SourceInterface.h.

Referenced by SourceXtractor::GroupInfoTask::computeProperties().

◆ setProperty() [2/2]

virtual void SourceXtractor::SourceInterface::setProperty

◆ size()

virtual unsigned int SourceXtractor::SourceGroupInterface::size ( ) const
pure virtual

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