class_loader  master
The class_loader package is a ROS-independent package for loading plugins during runtime.
Public Member Functions | List of all members
class_loader::impl::MetaObject< C, B > Class Template Reference

The actual factory. More...

#include <meta_object.hpp>

Inheritance diagram for class_loader::impl::MetaObject< C, B >:
Inheritance graph
[legend]
Collaboration diagram for class_loader::impl::MetaObject< C, B >:
Collaboration graph
[legend]

Public Member Functions

 MetaObject (const std::string &class_name, const std::string &base_class_name)
 Constructor for the class. More...
 
B * create () const
 The factory interface to generate an object. The object has type C in reality, though a pointer of the base class type is returned. More...
 
- Public Member Functions inherited from class_loader::impl::AbstractMetaObject< B >
 AbstractMetaObject (const std::string &class_name, const std::string &base_class_name)
 A constructor for this class. More...
 
- Public Member Functions inherited from class_loader::impl::AbstractMetaObjectBase
 AbstractMetaObjectBase (const std::string &class_name, const std::string &base_class_name, const std::string &typeid_base_class_name="UNSET")
 Constructor for the class. More...
 
 ~AbstractMetaObjectBase ()
 Destructor for the class. THIS MUST NOT BE VIRTUAL AND OVERRIDDEN BY TEMPLATE SUBCLASSES, OTHERWISE THEY WILL PULL IN A REDUNDANT METAOBJECT DESTRUCTOR OUTSIDE OF libclass_loader WITHIN THE PLUGIN LIBRARY! T. More...
 
const std::stringclassName () const
 Gets the literal name of the class. More...
 
const std::stringbaseClassName () const
 gets the base class for the class this factory represents More...
 
const std::stringtypeidBaseClassName () const
 Gets the name of the class as typeid(BASE_CLASS).name() would return it. More...
 
const std::stringgetAssociatedLibraryPath () const
 Gets the path to the library associated with this factory. More...
 
void setAssociatedLibraryPath (const std::string &library_path)
 Sets the path to the library associated with this factory. More...
 
void addOwningClassLoader (ClassLoader *loader)
 Associates a ClassLoader owner with this factory,. More...
 
void removeOwningClassLoader (const ClassLoader *loader)
 Removes a ClassLoader that is an owner of this factory. More...
 
bool isOwnedBy (const ClassLoader *loader) const
 Indicates if the factory is within the usable scope of a ClassLoader. More...
 
bool isOwnedByAnybody () const
 Indicates if the factory is within the usable scope of any ClassLoader. More...
 
size_t getAssociatedClassLoadersCount () const
 Get the number of associated class Loaders. More...
 
ClassLoadergetAssociatedClassLoader (size_t index) const
 Get an associated ClassLoader pointer by index. More...
 

Additional Inherited Members

- Protected Member Functions inherited from class_loader::impl::AbstractMetaObjectBase
virtual void dummyMethod ()
 
- Protected Attributes inherited from class_loader::impl::AbstractMetaObjectBase
AbstractMetaObjectBaseImpl * impl_
 

Detailed Description

template<class C, class B>
class class_loader::impl::MetaObject< C, B >

The actual factory.

@parm C The derived class (the actual plugin) @parm B The base class interface for the plugin

Constructor & Destructor Documentation

◆ MetaObject()

template<class C , class B >
class_loader::impl::MetaObject< C, B >::MetaObject ( const std::string class_name,
const std::string base_class_name 
)
inline

Constructor for the class.

Member Function Documentation

◆ create()

template<class C , class B >
B* class_loader::impl::MetaObject< C, B >::create ( ) const
inlinevirtual

The factory interface to generate an object. The object has type C in reality, though a pointer of the base class type is returned.

Returns
A pointer to a newly created plugin with the base class type (type parameter B)

Implements class_loader::impl::AbstractMetaObject< B >.


The documentation for this class was generated from the following file: