Main Page   Modules   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   Related Pages  

KLibLoader Class Reference

#include <klibloader.h>

List of all members.

Public Methods

 ~KLibLoader ()
KLibFactoryfactory (const char *libname)
virtual KLibrarylibrary (const char *libname)
KLibraryglobalLibrary (const char *name)
virtual void unloadLibrary (const char *libname)

Static Public Methods

KLibLoader * self ()
QString findLibrary (const char *name, const KInstance *instance=KGlobal::instance())


Detailed Description

The KLibLoader allows you to load libraries dynamically at runtime. Dependent libraries are loaded automatically.

KLibLoader follows the singleton pattern. You can not create multiple instances. Use self() to get a pointer to the loader.

Author:
Torben Weis <weis@kde.org>

Definition at line 140 of file klibloader.h.


Constructor & Destructor Documentation

KLibLoader::~KLibLoader  
 

You should NEVER destruct an instance of KLibLoader until you know what you are doing. This will release the loaded libraries.


Member Function Documentation

KLibFactory* KLibLoader::factory const char *    libname
 

Loads and initializes a library. Loading a library multiple times is handled gracefully.

This is a convenience function that returns the factory immediately

Parameters:
libname  This is the library name without extension. Usually that is something like "libkspread". The function will then search for a file named "libkspread.la" in the KDE library paths. The *.la files are created by libtool and contain important information especially about the libraries dependencies on other shared libs. Loading a "libfoo.so" could not solve the dependencies problem.
You can, however, give a library name ending in ".so" (or whatever is used on your platform), and the library will be loaded without resolving dependencies. USE WITH CARE :)
Returns:
the KLibFactory, or 0 if the library does not exist or it does not have a factory
See also:
library

QString KLibLoader::findLibrary const char *    name,
const KInstance   instance = KGlobal::instance()
[static]
 

Helper method which looks for a library in the standard paths ("module" and "lib" resources). Made public for code that doesn't use KLibLoader itself, but still wants to open modules.

Parameters:
name  of the library. If it is not a path, the function searches in the "module" and "lib" resources. If there is no extension, ".la" will be appended.
instance  a KInstance used to get the standard paths

KLibrary* KLibLoader::globalLibrary const char *    name
 

Loads and initializes a library. Loading a library multiple times is handled gracefully. The library is loaded such that the symbols are globally accessible so libraries with dependencies can be loaded sequentially.

Parameters:
libname  This is the library name without extension. Usually that is something like "libkspread". The function will then search for a file named "libkspread.la" in the KDE library paths. The *.la files are created by libtool and contain important information especially about the libraries dependencies on other shared libs. Loading a "libfoo.so" could not solve the dependencies problem.
You can, however, give a library name ending in ".so" (or whatever is used on your platform), and the library will be loaded without resolving dependencies. USE WITH CARE :)
Returns:
KLibrariy is invalid (0) when the library couldn't be dlopened. in such a case you can retrieve the error message by calling KLibLoader::lastErrorMessage()
See also:
factory

virtual KLibrary* KLibLoader::library const char *    libname [virtual]
 

Loads and initializes a library. Loading a library multiple times is handled gracefully.

Parameters:
libname  This is the library name without extension. Usually that is something like "libkspread". The function will then search for a file named "libkspread.la" in the KDE library paths. The *.la files are created by libtool and contain important information especially about the libraries dependencies on other shared libs. Loading a "libfoo.so" could not solve the dependencies problem.
You can, however, give a library name ending in ".so" (or whatever is used on your platform), and the library will be loaded without resolving dependencies. USE WITH CARE :)
Returns:
KLibrary is invalid (0) when the library couldn't be dlopened. in such a case you can retrieve the error message by calling KLibLoader::lastErrorMessage()
See also:
factory

KLibLoader* KLibLoader::self   [static]
 

Returns a pointer to the factory. Use this function to get an instance of KLibLoader.

Returns:
a pointer to the loader. If no loader exists until now then one is created.

virtual void KLibLoader::unloadLibrary const char *    libname [virtual]
 

Unloads the library with the given name.

Parameters:
libname  This is the library name without extension. Usually that is something like "libkspread". The function will then search for a file named "libkspread.la" in the KDE library paths. The *.la files are created by libtool and contain important information especially about the libraries dependencies on other shared libs. Loading a "libfoo.so" could not solve the dependencies problem.
You can, however, give a library name ending in ".so" (or whatever is used on your platform), and the library will be loaded without resolving dependencies. USE WITH CARE :)


The documentation for this class was generated from the following file:
Generated on Wed Aug 13 23:30:17 2003 for kdelibs by doxygen1.2.18