Medical Imaging Interaction Toolkit
2024.06.00
Medical Imaging Interaction Toolkit
usModuleActivator.h
Go to the documentation of this file.
1
/*============================================================================
2
3
Library: CppMicroServices
4
5
Copyright (c) German Cancer Research Center (DKFZ)
6
All rights reserved.
7
8
Licensed under the Apache License, Version 2.0 (the "License");
9
you may not use this file except in compliance with the License.
10
You may obtain a copy of the License at
11
12
https://www.apache.org/licenses/LICENSE-2.0
13
14
Unless required by applicable law or agreed to in writing, software
15
distributed under the License is distributed on an "AS IS" BASIS,
16
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
See the License for the specific language governing permissions and
18
limitations under the License.
19
20
============================================================================*/
21
22
#ifndef USMODULEACTIVATOR_H_
23
#define USMODULEACTIVATOR_H_
24
25
#ifndef US_MODULE_NAME
26
#error Missing US_MODULE_NAME preprocessor define
27
#endif
28
29
#include <
usGlobalConfig.h
>
30
#include <usModuleUtils_p.h>
31
32
US_BEGIN_NAMESPACE
33
34
class
ModuleContext
;
35
63
struct
ModuleActivator
64
{
65
66
virtual
~ModuleActivator
() {}
67
82
virtual
void
Load(
ModuleContext
* context) = 0;
83
99
virtual
void
Unload(
ModuleContext
* context) = 0;
100
101
};
102
103
US_END_NAMESPACE
104
105
119
#define US_EXPORT_MODULE_ACTIVATOR(_activator_type) \
120
extern "C" US_ABI_EXPORT US_PREPEND_NAMESPACE(ModuleActivator)* US_CONCAT(_us_module_activator_instance_, US_MODULE_NAME) () \
121
{ \
122
struct ScopedPointer \
123
{ \
124
ScopedPointer(US_PREPEND_NAMESPACE(ModuleActivator)* activator = 0) : m_Activator(activator) {} \
125
~ScopedPointer() { delete m_Activator; } \
126
US_PREPEND_NAMESPACE(ModuleActivator)* m_Activator; \
127
}; \
128
\
129
static ScopedPointer activatorPtr; \
130
if (activatorPtr.m_Activator == 0) activatorPtr.m_Activator = new _activator_type; \
131
return activatorPtr.m_Activator; \
132
}
133
134
#endif
/* USMODULEACTIVATOR_H_ */
ModuleContext
Definition:
usModuleContext.h:91
us::ModuleActivator
Definition:
usModuleActivator.h:63
us::ModuleActivator::~ModuleActivator
virtual ~ModuleActivator()
Definition:
usModuleActivator.h:66
usGlobalConfig.h
US_BEGIN_NAMESPACE
#define US_BEGIN_NAMESPACE
Definition:
usGlobalConfig.h:76
US_END_NAMESPACE
#define US_END_NAMESPACE
Definition:
usGlobalConfig.h:77
src
MITK
Modules
CppMicroServices
core
include
usModuleActivator.h
Generated on Mon Jun 17 2024 12:43:31 for Medical Imaging Interaction Toolkit by
1.8.17