plugin_loader_base.h
Go to the documentation of this file.
00001 //=================================================================================================
00002 // Copyright (c) 2016, Alexander Stumpf, TU Darmstadt
00003 // Based on pluginlib (http://wiki.ros.org/pluginlib)
00004 // All rights reserved.
00005 
00006 // Redistribution and use in source and binary forms, with or without
00007 // modification, are permitted provided that the following conditions are met:
00008 //     * Redistributions of source code must retain the above copyright
00009 //       notice, this list of conditions and the following disclaimer.
00010 //     * Redistributions in binary form must reproduce the above copyright
00011 //       notice, this list of conditions and the following disclaimer in the
00012 //       documentation and/or other materials provided with the distribution.
00013 //     * Neither the name of the Simulation, Systems Optimization and Robotics
00014 //       group, TU Darmstadt nor the names of its contributors may be used to
00015 //       endorse or promote products derived from this software without
00016 //       specific prior written permission.
00017 
00018 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
00019 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
00020 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00021 // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
00022 // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
00023 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00024 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
00025 // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00026 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00027 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00028 //=================================================================================================
00029 
00030 #ifndef VIGIR_PLUGINLIB_PLUGIN_LOADER_BASE_H__
00031 #define VIGIR_PLUGINLIB_PLUGIN_LOADER_BASE_H__
00032 
00033 #include <ros/ros.h>
00034 
00035 #include <pluginlib/class_loader_base.h>
00036 
00037 #include <vigir_pluginlib/plugin.h>
00038 
00039 
00040 
00041 namespace vigir_pluginlib
00042 {
00043 class PluginLoaderBase
00044   : public virtual pluginlib::ClassLoaderBase
00045 {
00046 public:
00055   PluginLoaderBase(std::string package, std::string base_class, std::string attrib_name = std::string("plugin"), std::vector<std::string> plugin_xml_paths = std::vector<std::string>());
00056 
00064   virtual Plugin::Ptr createPluginInstance(const std::string& lookup_name) = 0;
00065 
00066   std::string getBaseClassPackage() const;
00067 
00068 protected:
00069   std::string base_class_package_;
00070 };
00071 }
00072 
00073 #endif


vigir_pluginlib
Author(s): Alexander Stumpf
autogenerated on Tue Sep 13 2016 03:47:30