SourceXtractorPlusPlus
0.12
Please provide a description of the project.
SEFramework
SEFramework
Source
SourceWithOnDemandProperties.h
Go to the documentation of this file.
1
23
#ifndef _SEFRAMEWORK_SOURCE_SOURCE_H
24
#define _SEFRAMEWORK_SOURCE_SOURCE_H
25
26
#include <vector>
27
28
#include "
SEFramework/Property/PropertyHolder.h
"
29
#include "
SEFramework/Source/SourceInterface.h
"
30
31
namespace
SourceXtractor
{
32
33
class
TaskProvider;
34
43
class
SourceWithOnDemandProperties
:
public
SourceInterface
{
44
45
public
:
46
50
virtual
~SourceWithOnDemandProperties
() =
default
;
51
52
// removes copy/move constructors and assignment operators
53
54
SourceWithOnDemandProperties
(
const
SourceWithOnDemandProperties
&) =
delete
;
55
SourceWithOnDemandProperties
&
operator=
(
const
SourceWithOnDemandProperties
&) =
delete
;
56
SourceWithOnDemandProperties
(
SourceWithOnDemandProperties
&&) =
delete
;
57
SourceWithOnDemandProperties
&
operator=
(
SourceWithOnDemandProperties
&&) =
delete
;
58
60
SourceWithOnDemandProperties
(
std::shared_ptr<const TaskProvider>
task_provider);
61
62
// Note : Because the get/setProperty() methods of the SourceInterface are
63
// templated, the overrides of the non-templated versions will hide them. For
64
// this reason it is necessary to re-introduce the templated methods, which is
65
// done by the using statements below.
66
using
SourceInterface::getProperty
;
67
using
SourceInterface::setProperty
;
68
69
protected
:
70
71
// Implementation of SourceInterface
72
virtual
const
Property
&
getProperty
(
const
PropertyId
& property_id)
const override
;
73
virtual
void
setProperty
(
std::unique_ptr<Property>
property,
const
PropertyId
& property_id)
override
;
74
75
private
:
76
std::shared_ptr<const TaskProvider>
m_task_provider
;
77
PropertyHolder
m_property_holder
;
78
};
/* End of Source class */
79
80
}
/* namespace SourceXtractor */
81
82
#endif
std::shared_ptr
SourceXtractor::SourceWithOnDemandProperties::setProperty
virtual void setProperty(std::unique_ptr< Property > property, const PropertyId &property_id) override
Definition:
SourceWithOnDemandProperties.cpp:52
SourceXtractor::SourceWithOnDemandProperties::getProperty
virtual const Property & getProperty(const PropertyId &property_id) const override
Definition:
SourceWithOnDemandProperties.cpp:35
SourceXtractor::SourceWithOnDemandProperties::m_task_provider
std::shared_ptr< const TaskProvider > m_task_provider
Definition:
SourceWithOnDemandProperties.h:76
SourceXtractor::SourceInterface::setProperty
void setProperty(Args... args)
Definition:
SourceInterface.h:72
SourceXtractor::SourceWithOnDemandProperties::~SourceWithOnDemandProperties
virtual ~SourceWithOnDemandProperties()=default
Destructor.
SourceXtractor::SourceWithOnDemandProperties::SourceWithOnDemandProperties
SourceWithOnDemandProperties(const SourceWithOnDemandProperties &)=delete
SourceXtractor::SourceWithOnDemandProperties::operator=
SourceWithOnDemandProperties & operator=(const SourceWithOnDemandProperties &)=delete
SourceXtractor::Property
Base class for all Properties. (has no actual content)
Definition:
Property.h:33
SourceXtractor
Definition:
Aperture.h:30
SourceXtractor::SourceInterface::getProperty
const PropertyType & getProperty(unsigned int index=0) const
Convenience template method to call getProperty() with a more user-friendly syntax.
Definition:
SourceInterface.h:57
SourceInterface.h
std::unique_ptr
STL class.
SourceXtractor::PropertyId
Identifier used to set and retrieve properties.
Definition:
PropertyId.h:40
SourceXtractor::SourceWithOnDemandProperties::m_property_holder
PropertyHolder m_property_holder
Definition:
SourceWithOnDemandProperties.h:77
PropertyHolder.h
SourceXtractor::PropertyHolder
A class providing a simple implementation of a container of properties.
Definition:
PropertyHolder.h:43
SourceXtractor::SourceWithOnDemandProperties
Definition:
SourceWithOnDemandProperties.h:43
SourceXtractor::SourceInterface
The SourceInterface is an abstract "source" that has properties attached to it.
Definition:
SourceInterface.h:46
Generated by
1.8.14