RSC
0.9.0
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
Plugin.h
Go to the documentation of this file.
1
/* ============================================================
2
*
3
* This file is part of the RSB project.
4
*
5
* Copyright (C) 2012 Jan Moringen <jmoringe@techfak.uni-bielefeld.de>
6
*
7
* This file may be licensed under the terms of the
8
* GNU Lesser General Public License Version 3 (the ``LGPL''),
9
* or (at your option) any later version.
10
*
11
* Software distributed under the License is distributed
12
* on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either
13
* express or implied. See the LGPL for the specific language
14
* governing rights and limitations.
15
*
16
* You should have received a copy of the LGPL along with this
17
* program. If not, go to http://www.gnu.org/licenses/lgpl.html
18
* or write to the Free Software Foundation, Inc.,
19
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20
*
21
* The development of this software was supported by:
22
* CoR-Lab, Research Institute for Cognition and Robotics
23
* Bielefeld University
24
*
25
* ============================================================ */
26
27
#pragma once
28
29
#include <string>
30
31
#include <boost/noncopyable.hpp>
32
#include <boost/scoped_ptr.hpp>
33
#include <boost/shared_ptr.hpp>
34
35
#include "rsc/rscexports.h"
36
37
namespace
rsc {
38
namespace
plugins {
39
40
extern
const
std::string
PLUGIN_INIT_SYMBOL
;
41
extern
const
std::string
PLUGIN_SHUTDOWN_SYMBOL
;
42
43
class
Impl;
44
53
class
RSC_EXPORT
Plugin
: boost::noncopyable {
54
public
:
55
virtual
~
Plugin
();
56
62
const
std::string& getName()
const
;
63
74
void
load(
bool
wrapExceptions =
true
);
75
85
void
unload(
bool
wrapExceptions =
true
);
86
93
std::string getLibrary()
const
;
94
95
private
:
96
friend
class
Manager
;
97
98
boost::scoped_ptr<Impl>
impl
;
99
100
Plugin
(
Impl
* impl);
101
102
static
boost::shared_ptr<Plugin> create(
const
std::string& name,
103
const
std::string& library);
104
};
105
106
typedef
boost::shared_ptr<Plugin>
PluginPtr
;
107
108
}
109
}
rsc
plugins
Plugin.h
Generated on Tue Aug 6 2013 15:04:20 for RSC by
1.8.1.2