SourceXtractorPlusPlus
0.8
Please provide a description of the project.
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
SEFramework
src
lib
Source
SimpleSourceGroup.cpp
Go to the documentation of this file.
1
17
/*
18
* @file SimpleSourceGroup.cpp
19
* @author nikoapos
20
*/
21
22
#include "
SEFramework/Source/SimpleSourceGroup.h
"
23
24
namespace
SourceXtractor {
25
26
SimpleSourceGroup::iterator
SimpleSourceGroup::begin
() {
27
return
iterator
(
std::unique_ptr<IteratorImpl>
(
new
iter
{
m_sources
.begin()}));
28
}
29
30
SimpleSourceGroup::iterator
SimpleSourceGroup::end
() {
31
return
iterator
(
std::unique_ptr<IteratorImpl>
(
new
iter
{
m_sources
.end()}));
32
}
33
34
SimpleSourceGroup::const_iterator
SimpleSourceGroup::cbegin
() {
35
return
const_iterator
(
std::unique_ptr<IteratorImpl>
(
new
iter
{
m_sources
.begin()}));
36
}
37
38
SimpleSourceGroup::const_iterator
SimpleSourceGroup::cend
() {
39
return
const_iterator
(
std::unique_ptr<IteratorImpl>
(
new
iter
{
m_sources
.end()}));
40
}
41
42
SimpleSourceGroup::const_iterator
SimpleSourceGroup::begin
()
const
{
43
return
const_iterator
(
std::unique_ptr<IteratorImpl>
(
new
iter
{
const_cast<
SimpleSourceGroup
*
>
(
this
)->
m_sources
.begin()}));
44
}
45
46
SimpleSourceGroup::const_iterator
SimpleSourceGroup::end
()
const
{
47
return
const_iterator
(
std::unique_ptr<IteratorImpl>
(
new
iter
{
const_cast<
SimpleSourceGroup
*
>
(
this
)->
m_sources
.end()}));
48
}
49
50
void
SimpleSourceGroup::addSource
(
std::shared_ptr<SourceInterface>
source) {
51
m_sources
.push_back(source);
52
}
53
54
SourceGroupInterface::iterator
SimpleSourceGroup::removeSource
(
iterator
pos) {
55
iter
& iter_impl =
dynamic_cast<
iter
&
>
(pos.
getImpl
());
56
auto
next_wrapped_it =
m_sources
.erase(iter_impl.
m_wrapped_it
);
57
return
iterator
(
std::unique_ptr<IteratorImpl>
(
new
iter
{next_wrapped_it}));
58
}
59
60
void
SimpleSourceGroup::merge
(
const
SourceGroupInterface
& other) {
61
auto
& other_group =
dynamic_cast<
const
SimpleSourceGroup
&
>
(other);
62
addAllSources
(other_group.m_sources);
63
}
64
65
const
Property
&
SimpleSourceGroup::getProperty
(
const
PropertyId
& property_id)
const
{
66
return
m_property_holder
.
getProperty
(property_id);
67
}
68
69
void
SimpleSourceGroup::setProperty
(
std::unique_ptr<Property>
property,
const
PropertyId
& property_id) {
70
m_property_holder
.
setProperty
(
std::move
(property), property_id);
71
}
72
73
unsigned
int
SimpleSourceGroup::size
()
const
{
74
return
m_sources
.size();
75
}
76
77
}
// SourceXtractor namespace
std::shared_ptr
SourceXtractor::SimpleSourceGroup::addSource
void addSource(std::shared_ptr< SourceInterface > source) override
Definition:
SimpleSourceGroup.cpp:50
SourceXtractor::SourceGroupInterface::GroupIterator::getImpl
IteratorImpl & getImpl()
Definition:
SourceGroupInterface.h:116
SourceXtractor::SimpleSourceGroup::iter::m_wrapped_it
std::list< std::shared_ptr< SourceInterface > >::iterator m_wrapped_it
Definition:
SimpleSourceGroup.h:120
SourceXtractor::SimpleSourceGroup::size
unsigned int size() const override
Definition:
SimpleSourceGroup.cpp:73
SourceXtractor::SimpleSourceGroup::m_property_holder
PropertyHolder m_property_holder
Definition:
SimpleSourceGroup.h:78
SourceXtractor::SimpleSourceGroup::cend
const_iterator cend() override
Definition:
SimpleSourceGroup.cpp:38
SourceXtractor::Property
Base class for all Properties. (has no actual content)
Definition:
Property.h:33
SourceXtractor::SimpleSourceGroup::removeSource
iterator removeSource(iterator pos) override
Definition:
SimpleSourceGroup.cpp:54
SourceXtractor::SimpleSourceGroup
A bare bones implementation of SourceGroupInterface meant to be used to implement unit tests...
Definition:
SimpleSourceGroup.h:39
SourceXtractor::SourceGroupInterface::GroupIterator
Definition:
SourceGroupInterface.h:51
SourceXtractor::SimpleSourceGroup::end
iterator end() override
Definition:
SimpleSourceGroup.cpp:30
SourceXtractor::SimpleSourceGroup::merge
void merge(const SourceGroupInterface &other) override
Definition:
SimpleSourceGroup.cpp:60
SourceXtractor::PropertyHolder::getProperty
const Property & getProperty(const PropertyId &property_id) const
Returns a reference to a Property if it is set, if not throws a PropertyNotFoundException.
Definition:
PropertyHolder.cpp:29
SourceXtractor::SimpleSourceGroup::begin
iterator begin() override
Definition:
SimpleSourceGroup.cpp:26
std::move
T move(T...args)
SimpleSourceGroup.h
SourceXtractor::SourceGroupInterface
Defines the interface used to group sources.
Definition:
SourceGroupInterface.h:37
SourceXtractor::SourceGroupInterface::addAllSources
void addAllSources(const SourceCollection &sources)
Convenient method to add all the sources of a collection.
Definition:
SourceGroupInterface.h:69
std::unique_ptr
STL class.
SourceXtractor::PropertyId
Identifier used to set and retrieve properties.
Definition:
PropertyId.h:40
SourceXtractor::SourceGroupInterface::iterator
GroupIterator< SourceInterface > iterator
Definition:
SourceGroupInterface.h:52
SourceXtractor::SimpleSourceGroup::cbegin
const_iterator cbegin() override
Definition:
SimpleSourceGroup.cpp:34
SourceXtractor::SimpleSourceGroup::getProperty
const Property & getProperty(const PropertyId &property_id) const override
Definition:
SimpleSourceGroup.cpp:65
SourceXtractor::SourceGroupInterface::const_iterator
GroupIterator< const SourceInterface > const_iterator
Definition:
SourceGroupInterface.h:53
SourceXtractor::PropertyHolder::setProperty
void setProperty(std::unique_ptr< Property > property, const PropertyId &property_id)
Sets a property, overwriting it if necessary.
Definition:
PropertyHolder.cpp:40
SourceXtractor::SimpleSourceGroup::m_sources
std::list< std::shared_ptr< SourceInterface > > m_sources
Definition:
SimpleSourceGroup.h:76
SourceXtractor::SimpleSourceGroup::iter
Definition:
SimpleSourceGroup.h:83
SourceXtractor::SimpleSourceGroup::setProperty
void setProperty(std::unique_ptr< Property > property, const PropertyId &property_id) override
Definition:
SimpleSourceGroup.cpp:69
Generated by
1.8.5