Public Member Functions | Private Member Functions | List of all members
class_loader::class_loader_private::AbstractMetaObject< B > Class Template Referenceabstract

Abstract base class for factories where polymorphic type variable indicates base class for plugin interface. B The base class interface for the plugin. More...

#include <meta_object.hpp>

Inheritance diagram for class_loader::class_loader_private::AbstractMetaObject< B >:
Inheritance graph
[legend]

Public Member Functions

 AbstractMetaObject (const std::string &class_name, const std::string &base_class_name)
 A constructor for this class. More...
 
virtual B * create () const =0
 Defines the factory interface that the MetaObject must implement. More...
 
- Public Member Functions inherited from class_loader::class_loader_private::AbstractMetaObjectBase
 AbstractMetaObjectBase (const std::string &class_name, const std::string &base_class_name)
 Constructor for the class. More...
 
void addOwningClassLoader (ClassLoader *loader)
 Associates a ClassLoader owner with this factory,. More...
 
std::string baseClassName () const
 gets the base class for the class this factory represents More...
 
std::string className () const
 Gets the literal name of the class. More...
 
ClassLoaderVector getAssociatedClassLoaders ()
 
std::string getAssociatedLibraryPath ()
 Gets the path to the library associated with this factory. More...
 
bool isOwnedBy (const ClassLoader *loader)
 Indicates if the factory is within the usable scope of a ClassLoader. More...
 
bool isOwnedByAnybody ()
 Indicates if the factory is within the usable scope of any ClassLoader. More...
 
void removeOwningClassLoader (const ClassLoader *loader)
 Removes a ClassLoader that is an owner of this factory. More...
 
void setAssociatedLibraryPath (std::string library_path)
 Sets the path to the library associated with this factory. More...
 
std::string typeidBaseClassName () const
 Gets the name of the class as typeid(BASE_CLASS).name() would return it. 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...
 

Private Member Functions

 AbstractMetaObject ()
 
 AbstractMetaObject (const AbstractMetaObject &)
 
AbstractMetaObjectoperator= (const AbstractMetaObject &)
 

Additional Inherited Members

- Protected Member Functions inherited from class_loader::class_loader_private::AbstractMetaObjectBase
virtual void dummyMethod ()
 
- Protected Attributes inherited from class_loader::class_loader_private::AbstractMetaObjectBase
ClassLoaderVector associated_class_loaders_
 
std::string associated_library_path_
 
std::string base_class_name_
 
std::string class_name_
 
std::string typeid_base_class_name_
 

Detailed Description

template<class B>
class class_loader::class_loader_private::AbstractMetaObject< B >

Abstract base class for factories where polymorphic type variable indicates base class for plugin interface. B The base class interface for the plugin.

Definition at line 147 of file meta_object.hpp.

Constructor & Destructor Documentation

template<class B>
class_loader::class_loader_private::AbstractMetaObject< B >::AbstractMetaObject ( const std::string &  class_name,
const std::string &  base_class_name 
)
inline

A constructor for this class.

Parameters
nameThe literal name of the class.

Definition at line 154 of file meta_object.hpp.

Create a new instance of a class. Cannot be used for singletons.

Member Function Documentation

template<class B>
virtual B* class_loader::class_loader_private::AbstractMetaObject< B >::create ( ) const
pure virtual

Defines the factory interface that the MetaObject must implement.

Returns
A pointer of parametric type B to a newly created object.

Implemented in class_loader::class_loader_private::MetaObject< C, B >.

template<class B>
AbstractMetaObject& class_loader::class_loader_private::AbstractMetaObject< B >::operator= ( const AbstractMetaObject< B > &  )
private

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


class_loader
Author(s): Mirza Shah
autogenerated on Mon Jun 10 2019 12:51:50