SourceXtractorPlusPlus
0.12
Please provide a description of the project.
SEImplementation
SEImplementation
Image
LockedWriteableImage.h
Go to the documentation of this file.
1
/*
2
* LockedWriteableImage.h
3
*
4
* Created on: Jul 7, 2020
5
* Author: mschefer
6
*/
7
8
#ifndef _SEIMPLEMENTATION_IMAGE_LOCKEDWRITEABLEIMAGE_H_
9
#define _SEIMPLEMENTATION_IMAGE_LOCKEDWRITEABLEIMAGE_H_
10
11
#include "
SEFramework/Image/ImageBase.h
"
12
#include "
SEFramework/Image/WriteableImage.h
"
13
14
#include "
SEImplementation/Measurement/MultithreadedMeasurement.h
"
15
16
namespace
SourceXtractor
{
17
18
template
<
typename
T>
19
class
LockedWriteableImage
:
public
ImageBase
<T>,
public
WriteableImage
<T> {
20
protected
:
21
LockedWriteableImage
(
std::shared_ptr
<
WriteableImage<T>
> img) :
m_img
{img},
m_lock
(
MultithreadedMeasurement::g_global_mutex
) {
22
}
23
24
public
:
25
template
<
typename
... Args>
26
static
std::shared_ptr<LockedWriteableImage<T>
>
create
(Args &&... args) {
27
return
std::shared_ptr<LockedWriteableImage<T>
>(
new
LockedWriteableImage
{std::forward<Args>(args)...});
28
}
29
30
std::string
getRepr
()
const override
{
31
return
"LockedWriteableImage("
+
m_img
->getRepr() +
")"
;
32
}
33
34
int
getWidth
()
const override
{
35
return
m_img
->getWidth();
36
}
37
38
int
getHeight
()
const override
{
39
return
m_img
->getHeight();
40
}
41
42
T
getValue
(
int
x
,
int
y
)
const override
{
43
return
m_img
->getValue(
x
,
y
);
44
}
45
46
void
setValue
(
int
x
,
int
y
, T value)
override
{
47
m_img
->setValue(
x
,
y
, value);
48
}
49
50
private
:
51
std::shared_ptr<WriteableImage<T>
>
m_img
;
52
std::lock_guard<std::recursive_mutex>
m_lock
;
53
};
54
55
}
56
57
#endif
/* _SEIMPLEMENTATION_IMAGE_LOCKEDWRITEABLEIMAGE_H_ */
SourceXtractor::WriteableImage
Definition:
WriteableImage.h:32
std::shared_ptr
SourceXtractor::ImageBase
Definition:
ImageBase.h:35
x
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > x
Definition:
MoffatModelFittingTask.cpp:94
SourceXtractor::LockedWriteableImage::getValue
T getValue(int x, int y) const override
Returns the value of the pixel with the coordinates (x,y)
Definition:
LockedWriteableImage.h:42
y
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > y
Definition:
MoffatModelFittingTask.cpp:94
SourceXtractor::LockedWriteableImage::m_lock
std::lock_guard< std::recursive_mutex > m_lock
Definition:
LockedWriteableImage.h:52
SourceXtractor::LockedWriteableImage::create
static std::shared_ptr< LockedWriteableImage< T > > create(Args &&... args)
Definition:
LockedWriteableImage.h:26
WriteableImage.h
std::string
STL class.
SourceXtractor::LockedWriteableImage::getRepr
std::string getRepr() const override
Get a string identifying this image in a human readable manner.
Definition:
LockedWriteableImage.h:30
SourceXtractor
Definition:
Aperture.h:30
SourceXtractor::LockedWriteableImage
Definition:
LockedWriteableImage.h:19
SourceXtractor::LockedWriteableImage::getWidth
int getWidth() const override
Returns the width of the image in pixels.
Definition:
LockedWriteableImage.h:34
std::lock_guard< std::recursive_mutex >
SourceXtractor::LockedWriteableImage::getHeight
int getHeight() const override
Returns the height of the image in pixels.
Definition:
LockedWriteableImage.h:38
SourceXtractor::LockedWriteableImage::setValue
void setValue(int x, int y, T value) override
Definition:
LockedWriteableImage.h:46
SourceXtractor::LockedWriteableImage::m_img
std::shared_ptr< WriteableImage< T > > m_img
Definition:
LockedWriteableImage.h:51
SourceXtractor::MultithreadedMeasurement::g_global_mutex
static std::recursive_mutex g_global_mutex
Definition:
MultithreadedMeasurement.h:54
MultithreadedMeasurement.h
ImageBase.h
SourceXtractor::LockedWriteableImage::LockedWriteableImage
LockedWriteableImage(std::shared_ptr< WriteableImage< T >> img)
Definition:
LockedWriteableImage.h:21
Generated by
1.8.14