SourceXtractorPlusPlus
0.15
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/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
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_ */
SourceXtractor::WriteableImage
Definition:
WriteableImage.h:33
std::shared_ptr
SourceXtractor::LockedWriteableImage::create
static std::shared_ptr< LockedWriteableImage< T > > create(Args &&...args)
Definition:
LockedWriteableImage.h:25
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
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:29
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
Definition:
LockedWriteableImage.h:18
SourceXtractor::LockedWriteableImage::getWidth
int getWidth() const override
Returns the width of the image in pixels.
Definition:
LockedWriteableImage.h:33
std::lock_guard
ModelFitting::height
height
Definition:
CompactModelBase.icpp:19
SourceXtractor::LockedWriteableImage::getHeight
int getHeight() const override
Returns the height of the image in pixels.
Definition:
LockedWriteableImage.h:37
SourceXtractor::LockedWriteableImage::setValue
void setValue(int x, int y, T value) override
Definition:
LockedWriteableImage.h:41
SourceXtractor::LockedWriteableImage::m_img
std::shared_ptr< WriteableImage< T > > m_img
Definition:
LockedWriteableImage.h:50
ModelFitting::width
width
Definition:
CompactModelBase.icpp:19
MultithreadedMeasurement.h
SourceXtractor::LockedWriteableImage::m_lock
std::lock_guard< std::mutex > m_lock
Definition:
LockedWriteableImage.h:51
SourceXtractor::LockedWriteableImage::LockedWriteableImage
LockedWriteableImage(std::shared_ptr< WriteableImage< T >> img)
Definition:
LockedWriteableImage.h:20
Generated by
1.8.5