include
nodelet
loader.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2010, Willow Garage, Inc.
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions are met:
7
*
8
* * Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
* * Redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution.
13
* * Neither the name of the Willow Garage, Inc. nor the names of its
14
* contributors may be used to endorse or promote products derived from
15
* this software without specific prior written permission.
16
*
17
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27
* POSSIBILITY OF SUCH DAMAGE.
28
*/
29
36
#ifndef NODELET_LOADER_H
37
#define NODELET_LOADER_H
38
39
#include "
nodeletdecl.h
"
40
41
#include <map>
42
#include <vector>
43
#include <boost/function.hpp>
44
#include <boost/scoped_ptr.hpp>
45
#include <boost/shared_ptr.hpp>
46
#include <boost/thread/mutex.hpp>
47
48
namespace
ros
49
{
50
class
NodeHandle;
51
}
52
53
namespace
nodelet
54
{
55
class
Nodelet
;
56
typedef
std::map<std::string, std::string>
M_string
;
57
typedef
std::vector<std::string>
V_string
;
58
62
class
NODELETLIB_DECL
Loader
63
{
64
public
:
66
Loader
(
bool
provide_ros_api =
true
);
68
Loader
(
const
ros::NodeHandle
& server_nh);
73
Loader
(
const
boost::function<
boost::shared_ptr<Nodelet>
(
const
std::string& lookup_name)>& create_instance);
74
75
~
Loader
();
76
78
bool
load(
const
std::string& name,
const
std::string& type,
const
M_string
& remappings,
79
const
V_string
& my_argv);
80
82
bool
unload(
const
std::string& name);
83
85
bool
clear();
86
88
std::vector<std::string> listLoadedNodelets();
89
90
private
:
91
boost::mutex
lock_
;
92
struct
Impl
;
93
boost::scoped_ptr<Impl>
impl_
;
94
};
95
96
}
// namespace nodelet
97
98
#endif //#ifndef NODELET_LOADER_H
nodelet::V_string
std::vector< std::string > V_string
Definition:
loader.h:57
boost::shared_ptr< Nodelet >
nodelet::M_string
std::map< std::string, std::string > M_string
Definition:
loader.h:55
nodeletdecl.h
ros
nodelet::Loader
A class which will construct and sequentially call Nodelets according to xml This is the primary way ...
Definition:
loader.h:62
nodelet::Loader::Impl
Definition:
loader.cpp:202
nodelet::Nodelet
Definition:
nodelet.h:186
nodelet
Definition:
callback_queue.h:44
nodelet::Loader::lock_
boost::mutex lock_
! Public methods must lock this to preserve internal integrity.
Definition:
loader.h:91
nodelet::Loader::impl_
boost::scoped_ptr< Impl > impl_
Definition:
loader.h:92
NODELETLIB_DECL
#define NODELETLIB_DECL
Definition:
nodeletdecl.h:40
ros::NodeHandle
nodelet
Author(s): Tully Foote, Radu Bogdan Rusu, Michael Carroll
autogenerated on Fri Nov 15 2024 03:38:09