OpenWalnut
1.2.5
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
All
Classes
Namespaces
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Groups
Pages
src
core
kernel
WPrototypeRequirement.h
1
//---------------------------------------------------------------------------
2
//
3
// Project: OpenWalnut ( http://www.openwalnut.org )
4
//
5
// Copyright 2009 OpenWalnut Community, BSV@Uni-Leipzig and CNCF@MPI-CBS
6
// For more information see http://www.openwalnut.org/copying
7
//
8
// This file is part of OpenWalnut.
9
//
10
// OpenWalnut is free software: you can redistribute it and/or modify
11
// it under the terms of the GNU Lesser General Public License as published by
12
// the Free Software Foundation, either version 3 of the License, or
13
// (at your option) any later version.
14
//
15
// OpenWalnut is distributed in the hope that it will be useful,
16
// but WITHOUT ANY WARRANTY; without even the implied warranty of
17
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
// GNU Lesser General Public License for more details.
19
//
20
// You should have received a copy of the GNU Lesser General Public License
21
// along with OpenWalnut. If not, see <http://www.gnu.org/licenses/>.
22
//
23
//---------------------------------------------------------------------------
24
25
#ifndef WPROTOTYPEREQUIREMENT_H
26
#define WPROTOTYPEREQUIREMENT_H
27
28
#include <string>
29
30
#include "../common/WRequirement.h"
31
#include "WExportKernel.h"
32
33
/**
34
* This requirement ensures that the specified prototype exists in the factory. These requirements are especially useful for container modules.
35
*/
36
class
OWKERNEL_EXPORT
WPrototypeRequirement
:
public
WRequirement
// NOLINT
37
{
38
public
:
39
40
/**
41
* Create instance. If your module uses this requirement, it needs the specified module.
42
*
43
* \param prototype the module needed.
44
*/
45
explicit
WPrototypeRequirement
( std::string prototype );
46
47
/**
48
* Destructor.
49
*/
50
virtual
~
WPrototypeRequirement
();
51
52
/**
53
* Checks if the requirement is fulfilled on the system. Implement this for your specific case.
54
*
55
* \return true if the specific requirement is fulfilled.
56
*/
57
virtual
bool
isComplied
()
const
;
58
59
/**
60
* Return a nice description of the requirement.
61
*
62
* \return the description.
63
*/
64
virtual
std::string
getDescription
()
const
;
65
66
protected
:
67
68
private
:
69
70
/**
71
* The required prototype.
72
*/
73
std::string
m_prototype
;
74
};
75
76
#endif // WPROTOTYPEREQUIREMENT_H
77
Generated by
1.8.1.2