SourceXtractorPlusPlus
0.13
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
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
SourceXtractor::LockedWriteableImage::create
static std::shared_ptr< LockedWriteableImage< T > > create(Args &&...args)
Definition:
LockedWriteableImage.h:26
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
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::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
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:53
MultithreadedMeasurement.h
ImageBase.h
SourceXtractor::LockedWriteableImage::LockedWriteableImage
LockedWriteableImage(std::shared_ptr< WriteableImage< T >> img)
Definition:
LockedWriteableImage.h:21
Generated by
1.8.5