Deskflow
1.22.0.197
Keyboard and mouse sharing utility
Loading...
Searching...
No Matches
TMethodJob.h
Go to the documentation of this file.
1
/*
2
* Deskflow -- mouse and keyboard sharing utility
3
* SPDX-FileCopyrightText: (C) 2012 - 2016 Symless Ltd.
4
* SPDX-FileCopyrightText: (C) 2002 Chris Schoeneman
5
* SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
6
*/
7
8
#pragma once
9
10
#include "
IJob.h
"
11
13
16
template
<
class
T>
class
TMethodJob
:
public
IJob
17
{
18
public
:
20
TMethodJob
(T *
object
,
void
(T::*method)(
void
*),
void
*arg =
nullptr
);
21
~TMethodJob
()
override
=
default
;
22
23
// IJob overrides
24
void
run
()
override
;
25
26
private
:
27
T *m_object;
28
void (T::*m_method)(
void
*);
29
void
*m_arg;
30
};
31
32
template
<
class
T>
33
inline
TMethodJob<T>::TMethodJob
(T *
object
,
void
(T::*method)(
void
*),
void
*arg)
34
: m_object(object),
35
m_method(method),
36
m_arg(arg)
37
{
38
// do nothing
39
}
40
41
template
<
class
T>
inline
void
TMethodJob<T>::run
()
42
{
43
if
(m_object !=
nullptr
) {
44
(m_object->*m_method)(m_arg);
45
}
46
}
IJob.h
IJob
Job interface.
Definition
IJob.h:17
TMethodJob::TMethodJob
TMethodJob(T *object, void(T::*method)(void *), void *arg=nullptr)
run() invokes object->method(arg)
Definition
TMethodJob.h:33
TMethodJob::~TMethodJob
~TMethodJob() override=default
TMethodJob::run
void run() override
Run the job.
Definition
TMethodJob.h:41
src
lib
base
TMethodJob.h
Generated by
1.14.0