src
rviz
class_id_recording_factory.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2012, 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
#ifndef CLASS_ID_RECORDING_FACTORY_H
30
#define CLASS_ID_RECORDING_FACTORY_H
31
32
#include <
rviz/factory.h
>
33
34
namespace
rviz
35
{
36
template
<
class
Type>
41
class
ClassIdRecordingFactory
:
public
Factory
42
{
43
public
:
55
virtual
Type*
make
(
const
QString& class_id, QString* error_return =
nullptr
)
56
{
57
Type* obj =
makeRaw
(class_id, error_return);
58
if
(obj !=
nullptr
)
59
{
60
obj->setClassId(class_id);
61
obj->setDescription(
getClassDescription
(class_id));
62
}
63
return
obj;
64
}
65
66
protected
:
67
virtual
Type*
makeRaw
(
const
QString& class_id, QString* error_return =
nullptr
) = 0;
68
};
69
70
}
// end namespace rviz
71
72
#endif // CLASS_ID_RECORDING_FACTORY_H
factory.h
rviz
Definition:
add_display_dialog.cpp:54
rviz::Factory::getClassDescription
virtual QString getClassDescription(const QString &class_id) const =0
rviz::ClassIdRecordingFactory::make
virtual Type * make(const QString &class_id, QString *error_return=nullptr)
Instantiate and return a instance of a subclass of Type using makeRaw().
Definition:
class_id_recording_factory.h:55
rviz::ClassIdRecordingFactory::makeRaw
virtual Type * makeRaw(const QString &class_id, QString *error_return=nullptr)=0
rviz::Factory
Abstract superclass representing the ability to get a list of class IDs and the ability to get name,...
Definition:
factory.h:42
rviz::ClassIdRecordingFactory
Templated factory which informs objects created by it what their class identifier string was.
Definition:
class_id_recording_factory.h:41
rviz
Author(s): Dave Hershberger, David Gossow, Josh Faust, William Woodall
autogenerated on Fri Dec 13 2024 03:31:02