class_loader_base.hpp
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 
30 #ifndef PLUGINLIB__CLASS_LOADER_BASE_HPP_
31 #define PLUGINLIB__CLASS_LOADER_BASE_HPP_
32 
33 #include <string>
34 #include <vector>
35 
36 namespace pluginlib
37 {
39 
46 {
47 public:
49  virtual ~ClassLoaderBase() {}
50 
52 
55  virtual std::vector<std::string> getPluginXmlPaths() = 0;
56 
58 
61  virtual std::vector<std::string> getDeclaredClasses() = 0;
62 
64 
67  virtual void refreshDeclaredClasses() = 0;
68 
70 
74  virtual std::string getName(const std::string & lookup_name) = 0;
75 
77 
81  virtual bool isClassAvailable(const std::string & lookup_name) = 0;
82 
84 
88  virtual std::string getClassType(const std::string & lookup_name) = 0;
89 
91 
95  virtual std::string getClassDescription(const std::string & lookup_name) = 0;
96 
98 
101  virtual std::string getBaseClassType() const = 0;
102 
104 
108  virtual std::string getClassPackage(const std::string & lookup_name) = 0;
109 
111 
115  virtual std::string getPluginManifestPath(const std::string & lookup_name) = 0;
116 
118 
122  virtual bool isClassLoaded(const std::string & lookup_name) = 0;
123 
125 
130  virtual void loadLibraryForClass(const std::string & lookup_name) = 0;
131 
133 
139  virtual int unloadLibraryForClass(const std::string & lookup_name) = 0;
140 
142 
145  virtual std::vector<std::string> getRegisteredLibraries() = 0;
146 
148 
152  virtual std::string getClassLibraryPath(const std::string & lookup_name) = 0;
153 };
154 } // namespace pluginlib
155 
156 #endif // PLUGINLIB__CLASS_LOADER_BASE_HPP_
pluginlib::ClassLoaderBase::isClassAvailable
virtual bool isClassAvailable(const std::string &lookup_name)=0
Check if the class associated with a plugin name is available to be loaded.
pluginlib::ClassLoaderBase::~ClassLoaderBase
virtual ~ClassLoaderBase()
Empty virtual destructor.
Definition: class_loader_base.hpp:49
pluginlib::ClassLoaderBase
Pure virtual base class of pluginlib::ClassLoader which is not templated.
Definition: class_loader_base.hpp:45
pluginlib::ClassLoaderBase::loadLibraryForClass
virtual void loadLibraryForClass(const std::string &lookup_name)=0
Attempt to load a class with a given name.
pluginlib::ClassLoaderBase::getDeclaredClasses
virtual std::vector< std::string > getDeclaredClasses()=0
Return a list of all available classes for this ClassLoader's base class type.
pluginlib::ClassLoaderBase::getPluginXmlPaths
virtual std::vector< std::string > getPluginXmlPaths()=0
Return a list of all available plugin manifest paths.
pluginlib::ClassLoaderBase::getClassPackage
virtual std::string getClassPackage(const std::string &lookup_name)=0
Given the name of a class, return name of the containing package.
pluginlib::ClassLoaderBase::getClassDescription
virtual std::string getClassDescription(const std::string &lookup_name)=0
Given the lookup name of a class, return its description.
pluginlib
Definition: class_desc.hpp:42
pluginlib::ClassLoaderBase::getClassLibraryPath
virtual std::string getClassLibraryPath(const std::string &lookup_name)=0
Given the name of a class, return the path to its associated library.
pluginlib::ClassLoaderBase::getClassType
virtual std::string getClassType(const std::string &lookup_name)=0
Given the lookup name of a class, return the type of the derived class associated with it.
pluginlib::ClassLoaderBase::getName
virtual std::string getName(const std::string &lookup_name)=0
Strip the package name off of a lookup name.
pluginlib::ClassLoaderBase::isClassLoaded
virtual bool isClassLoaded(const std::string &lookup_name)=0
Check if a given class is currently loaded.
pluginlib::ClassLoaderBase::getBaseClassType
virtual std::string getBaseClassType() const =0
Given the lookup name of a class, return the type of the associated base class.
pluginlib::ClassLoaderBase::getRegisteredLibraries
virtual std::vector< std::string > getRegisteredLibraries()=0
Return the libraries that are registered and can be loaded.
pluginlib::ClassLoaderBase::unloadLibraryForClass
virtual int unloadLibraryForClass(const std::string &lookup_name)=0
Attempt to unload a class with a given name.
pluginlib::ClassLoaderBase::getPluginManifestPath
virtual std::string getPluginManifestPath(const std::string &lookup_name)=0
Given the name of a class, return the path of the associated plugin manifest.
pluginlib::ClassLoaderBase::refreshDeclaredClasses
virtual void refreshDeclaredClasses()=0
Refresh the list of all available classes for this ClassLoader's base class type.


pluginlib
Author(s): Eitan Marder-Eppstein, Tully Foote, Dirk Thomas, Mirza Shah
autogenerated on Tue Jul 9 2024 02:50:20