MeVisLab Toolbox Reference
Executable.h
Go to the documentation of this file.
1
// Copyright (c) Fraunhofer MEVIS, Germany. All rights reserved.
2
// **InsertLicense** code
3
4
#pragma once
5
6
#include <
asio/Processor.h
>
7
8
9
namespace
asio
{
10
11
template
<
typename
... Args>
12
class
ExecutableType
;
13
14
// vtordisp(2) enables the vtordisp members for all vitual bases
15
// with virtual functions to ensure correct performance of
16
// dynamic_cast on a partially constructed object. Otherwise
17
// a warning is generated for each compilation unit.
18
19
#ifdef _MSC_VER
20
#pragma vtordisp(push, 2)
21
#endif
22
template
<
typename
... Args>
23
class
ExecutableType
<
ParameterPack
<Args...>> :
public
virtual
Processor
24
{
25
public
:
26
27
using
InputSignature
=
ParameterPack
<Args...>;
28
29
// todo: deprecate this!
30
using
Signature
=
InputSignature
;
31
32
virtual
void
execute
(Args... args) = 0;
33
};
34
#ifdef _MSC_VER
35
#pragma vtordisp(pop)
36
#endif
37
38
template
<
typename
... Args>
39
using
ConstRefExecutable
=
ExecutableType
<
ParameterPack
<
const
Args&...>>;
40
41
template
<
typename
... Args>
42
using
ByValueExecutable
=
ExecutableType
<
ParameterPack
<Args...>>;
43
44
template
<
typename
... Args>
45
using
Executable
=
ConstRefExecutable
<Args...>;
46
47
using
EntryPoint
=
Executable<>
;
48
49
}
Processor.h
asio::ExecutableType< ParameterPack< Args... > >
Definition:
Executable.h:24
asio::ExecutableType< ParameterPack< Args... > >::execute
virtual void execute(Args... args)=0
asio::ExecutableType
Definition:
Executable.h:12
asio::ParameterPack
Definition:
Processor.h:20
asio::Processor
Base class for all asynchronous I/O interfaces.
Definition:
Processor.h:31
asio
Definition:
AsynchronousExecution.h:15
FMEstable
ReleaseMeVis
Projects
AsynchronousIO
Sources
asio
Executable.h
Generated by
1.9.1