include
controller_manager
controller_loader_interface.h
Go to the documentation of this file.
1
// Copyright (C) 2012, hiDOF, Inc
3
//
4
// Redistribution and use in source and binary forms, with or without
5
// modification, are permitted provided that the following conditions are met:
6
// * Redistributions of source code must retain the above copyright notice,
7
// this list of conditions and the following disclaimer.
8
// * Redistributions in binary form must reproduce the above copyright
9
// notice, this list of conditions and the following disclaimer in the
10
// documentation and/or other materials provided with the distribution.
11
// * Neither the name of hiDOF, Inc. nor the names of its
12
// contributors may be used to endorse or promote products derived from
13
// this software without specific prior written permission.
14
//
15
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
19
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25
// POSSIBILITY OF SUCH DAMAGE.
27
28
#pragma once
29
30
31
#include <vector>
32
#include <string>
33
#include <memory>
34
#include <
controller_interface/controller_base.h
>
35
36
namespace
controller_manager
37
{
38
45
class
ControllerLoaderInterface
46
{
47
public
:
48
ControllerLoaderInterface
(
const
std::string& name) :
name_
(name) {}
49
virtual
~ControllerLoaderInterface
() =
default
;
50
51
virtual
controller_interface::ControllerBaseSharedPtr
createInstance
(
const
std::string& lookup_name) = 0;
52
virtual
std::vector<std::string>
getDeclaredClasses
() = 0;
53
virtual
void
reload
() = 0;
54
const
std::string&
getName
() {
return
name_
; }
55
56
private
:
57
const
std::string
name_
;
58
};
59
60
typedef
std::shared_ptr<ControllerLoaderInterface>
ControllerLoaderInterfaceSharedPtr
;
61
62
}
controller_manager
Definition:
controller_loader.h:35
controller_manager::ControllerLoaderInterface::name_
const std::string name_
Definition:
controller_loader_interface.h:57
controller_manager::ControllerLoaderInterface::ControllerLoaderInterface
ControllerLoaderInterface(const std::string &name)
Definition:
controller_loader_interface.h:48
controller_manager::ControllerLoaderInterface::~ControllerLoaderInterface
virtual ~ControllerLoaderInterface()=default
controller_base.h
controller_manager::ControllerLoaderInterfaceSharedPtr
std::shared_ptr< ControllerLoaderInterface > ControllerLoaderInterfaceSharedPtr
Definition:
controller_loader_interface.h:60
controller_manager::ControllerLoaderInterface::getName
const std::string & getName()
Definition:
controller_loader_interface.h:54
controller_manager::ControllerLoaderInterface
Abstract Controller Loader Interface.
Definition:
controller_loader_interface.h:45
controller_manager::ControllerLoaderInterface::getDeclaredClasses
virtual std::vector< std::string > getDeclaredClasses()=0
controller_interface::ControllerBaseSharedPtr
std::shared_ptr< ControllerBase > ControllerBaseSharedPtr
controller_manager::ControllerLoaderInterface::createInstance
virtual controller_interface::ControllerBaseSharedPtr createInstance(const std::string &lookup_name)=0
controller_manager::ControllerLoaderInterface::reload
virtual void reload()=0
controller_manager
Author(s): Wim Meeussen, Mathias Lüdtke
autogenerated on Tue Oct 15 2024 02:08:23