Gazebo Plugin
API Reference
3.0.0
insert_drive_file
Tutorials
library_books
Classes
toc
Namespaces
insert_drive_file
Files
launch
Gazebo Website
Index
List
Hierarchy
Members: All
Members: Functions
Members: Variables
Members: Typedefs
Members: Enumerations
Members: Enumerator
List
Members
Functions
Typedefs
Variables
Enumerations
Enumerator
src
gz-plugin
core
include
gz
plugin
EnablePluginFromThis.hh
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2018 Open Source Robotics Foundation
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*
16
*/
17
18
#ifndef GZ_PLUGIN_ENABLEPLUGINFROMTHIS_HH_
19
#define GZ_PLUGIN_ENABLEPLUGINFROMTHIS_HH_
20
21
#include <memory>
22
23
#include <
gz/plugin/PluginPtr.hh
>
24
25
namespace
gz
26
{
27
namespace
plugin
28
{
29
// Forward declaration
30
class
Loader
;
31
40
class
GZ_PLUGIN_VISIBLE
EnablePluginFromThis
41
{
43
public
:
EnablePluginFromThis
();
44
47
public
:
PluginPtr
PluginFromThis
();
48
53
public
:
ConstPluginPtr
PluginFromThis
()
const
;
54
56
public
:
virtual
~EnablePluginFromThis
();
57
68
protected
:
std::shared_ptr<void>
PluginInstancePtrFromThis
()
const
;
69
70
// Declare friendship so that the internal WeakPluginPtr can be set by
71
// the Loader class.
72
friend
class
Loader
;
73
76
private
:
void
PrivateSetPluginFromThis(
const
PluginPtr
&_ptr);
77
78
private
:
class
Implementation;
79
GZ_UTILS_WARN_IGNORE__DLL_INTERFACE_MISSING
80
private
:
std::unique_ptr<Implementation>
pimpl;
81
GZ_UTILS_WARN_RESUME__DLL_INTERFACE_MISSING
82
};
83
}
84
}
85
86
#endif