Diana Software
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
QGlobalRWFactory Class Reference

This class take care of plugin registration and creation. More...

Inheritance diagram for QGlobalRWFactory:
QNamed

Public Member Functions

virtual ~QGlobalRWFactory ()
 
void LoadPlugin (const std::string &name)
 
void RegisterGlobalReader (QGlobalReaderFactory *GRF)
 
std::list< const QGlobalReaderFactory * > GetListOfGlobalReaders () const
 
QGlobalReaderCreateGlobalReader (const std::string &name)
 
void RegisterGlobalWriter (QGlobalWriterFactory *GRF)
 
std::list< const QGlobalWriterFactory * > GetListOfGlobalWriters () const
 
QGlobalWriterCreateGlobalWriter (const std::string &name)
 
- Public Member Functions inherited from QNamed
 QNamed ()
 
 QNamed (const std::string &Name)
 
virtual ~QNamed ()
 
const std::string & GetName () const
 
void SetName (const std::string &name)
 

Static Public Member Functions

static QGlobalRWFactoryGetInstance ()
 

Private Member Functions

 QGlobalRWFactory ()
 

Private Attributes

Diana::QDLLLoader * fDLLLoader
 
std::map< std::string, QGlobalReaderFactory * > fGlobalReaders
 
std::map< std::string, QGlobalWriterFactory * > fGlobalWriters
 

Detailed Description

This class take care of plugin registration and creation.

Author
Marco Vignati

Each plugin (MyPlugin) must implement a function like this:

void registerInFactoryMyPlugin()

this function creates a MyPluginFactory and register it in the QGlobalRWFactory.
When at run time an application ask to LoadPlugin("MyPlugin") the QDll system
open the library that contains registerMyPlugin and executes it so that the MyPluginFactory
is automatically created and registered into the QGlobalRWFactory.
Once a plugin is registered other applications can call the CreatePluginType("MyPlugin") that
in turns call the MyPluginFactory and return a pointer to the newly created MyPlugin instance.

Reference: http://www.nuclex.org/articles/building-a-better-plugin-architecture (Option 1)

Definition at line 37 of file QGlobalRWFactory.hh.

Constructor & Destructor Documentation

◆ ~QGlobalRWFactory()

QGlobalRWFactory::~QGlobalRWFactory ( )
virtual

Definition at line 28 of file QGlobalRWFactory.cc.

References fGlobalReaders, and fGlobalWriters.

◆ QGlobalRWFactory()

QGlobalRWFactory::QGlobalRWFactory ( )
private

Member Function Documentation

◆ CreateGlobalReader()

QGlobalReader * QGlobalRWFactory::CreateGlobalReader ( const std::string &  name)

Definition at line 71 of file QGlobalRWFactory.cc.

References fGlobalReaders.

Referenced by QGlobalReaderDispatcher::GetReader().

◆ CreateGlobalWriter()

QGlobalWriter * QGlobalRWFactory::CreateGlobalWriter ( const std::string &  name)

Definition at line 103 of file QGlobalRWFactory.cc.

References fGlobalWriters.

Referenced by QGlobalWriterDispatcher::GetWriter().

◆ GetInstance()

QGlobalRWFactory & QGlobalRWFactory::GetInstance ( )
static

◆ GetListOfGlobalReaders()

std::list< const QGlobalReaderFactory * > QGlobalRWFactory::GetListOfGlobalReaders ( ) const

Definition at line 62 of file QGlobalRWFactory.cc.

References fGlobalReaders.

Referenced by QGlobalReaderDispatcher::GetReader().

◆ GetListOfGlobalWriters()

std::list< const QGlobalWriterFactory * > QGlobalRWFactory::GetListOfGlobalWriters ( ) const

Definition at line 94 of file QGlobalRWFactory.cc.

References fGlobalWriters.

Referenced by QGlobalWriterDispatcher::GetWriter().

◆ LoadPlugin()

void QGlobalRWFactory::LoadPlugin ( const std::string &  name)

◆ RegisterGlobalReader()

void QGlobalRWFactory::RegisterGlobalReader ( QGlobalReaderFactory GRF)

◆ RegisterGlobalWriter()

void QGlobalRWFactory::RegisterGlobalWriter ( QGlobalWriterFactory GRF)

Member Data Documentation

◆ fDLLLoader

Diana::QDLLLoader* QGlobalRWFactory::fDLLLoader
private

Definition at line 55 of file QGlobalRWFactory.hh.

Referenced by LoadPlugin(), and QGlobalRWFactory().

◆ fGlobalReaders

std::map<std::string, QGlobalReaderFactory*> QGlobalRWFactory::fGlobalReaders
private

◆ fGlobalWriters

std::map<std::string, QGlobalWriterFactory*> QGlobalRWFactory::fGlobalWriters
private

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