SourceXtractorPlusPlus
0.16
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/WriteableImage.h
"
12
13
#include "
SEImplementation/Measurement/MultithreadedMeasurement.h
"
14
15
namespace
SourceXtractor
{
16
17
template
<
typename
T>
18
class
LockedWriteableImage
:
public
WriteableImage
<T> {
19
protected
:
20
explicit
LockedWriteableImage
(
std::shared_ptr
<
WriteableImage<T>
> img) :
m_img
{img},
m_lock
(img->
m_write_mutex
) {
21
}
22
23
public
:
24
template
<
typename
... Args>
25
static
std::shared_ptr<LockedWriteableImage<T>
>
create
(Args &&... args) {
26
return
std::shared_ptr<LockedWriteableImage<T>
>(
new
LockedWriteableImage
{std::forward<Args>(args)...});
27
}
28
29
std::string
getRepr
()
const override
{
30
return
"LockedWriteableImage("
+
m_img
->getRepr() +
")"
;
31
}
32
33
int
getWidth
()
const override
{
34
return
m_img
->getWidth();
35
}
36
37
int
getHeight
()
const override
{
38
return
m_img
->getHeight();
39
}
40
41
void
setValue
(
int
x
,
int
y
, T value)
override
{
42
m_img
->setValue(
x
,
y
, value);
43
}
44
45
std::shared_ptr<ImageChunk<T>
>
getChunk
(
int
x
,
int
y
,
int
width,
int
height)
const override
{
46
return
m_img
->getChunk(
x
,
y
, width, height);
47
}
48
49
private
:
50
std::shared_ptr<WriteableImage<T>
>
m_img
;
51
std::lock_guard<std::mutex>
m_lock
;
52
};
53
54
}
55
56
#endif
/* _SEIMPLEMENTATION_IMAGE_LOCKEDWRITEABLEIMAGE_H_ */
x
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > x
Definition:
MoffatModelFittingTask.cpp:94
y
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > y
Definition:
MoffatModelFittingTask.cpp:94
MultithreadedMeasurement.h
WriteableImage.h
std::string
SourceXtractor::LockedWriteableImage
Definition:
LockedWriteableImage.h:18
SourceXtractor::LockedWriteableImage::getChunk
std::shared_ptr< ImageChunk< T > > getChunk(int x, int y, int width, int height) const override
Definition:
LockedWriteableImage.h:45
SourceXtractor::LockedWriteableImage::getHeight
int getHeight() const override
Returns the height of the image in pixels.
Definition:
LockedWriteableImage.h:37
SourceXtractor::LockedWriteableImage::m_img
std::shared_ptr< WriteableImage< T > > m_img
Definition:
LockedWriteableImage.h:50
SourceXtractor::LockedWriteableImage::LockedWriteableImage
LockedWriteableImage(std::shared_ptr< WriteableImage< T >> img)
Definition:
LockedWriteableImage.h:20
SourceXtractor::LockedWriteableImage::setValue
void setValue(int x, int y, T value) override
Definition:
LockedWriteableImage.h:41
SourceXtractor::LockedWriteableImage::getRepr
std::string getRepr() const override
Get a string identifying this image in a human readable manner.
Definition:
LockedWriteableImage.h:29
SourceXtractor::LockedWriteableImage::getWidth
int getWidth() const override
Returns the width of the image in pixels.
Definition:
LockedWriteableImage.h:33
SourceXtractor::LockedWriteableImage::m_lock
std::lock_guard< std::mutex > m_lock
Definition:
LockedWriteableImage.h:51
SourceXtractor::LockedWriteableImage::create
static std::shared_ptr< LockedWriteableImage< T > > create(Args &&... args)
Definition:
LockedWriteableImage.h:25
SourceXtractor::WriteableImage
Definition:
WriteableImage.h:33
SourceXtractor::WriteableImage::m_write_mutex
std::mutex m_write_mutex
Definition:
WriteableImage.h:39
std::lock_guard< std::mutex >
SourceXtractor
Definition:
Aperture.h:30
std::shared_ptr
Generated by
1.9.1