summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2014-10-05 12:39:14 +0200
committerAndreas Baumann <mail@andreasbaumann.cc>2014-10-05 12:39:14 +0200
commit4174158dc75b5ed892b293b18b7dd5c85aa36f2f (patch)
tree15833550838d912174c54d05583d5374f03c35e9 /include
parentd207e5a4f68cf56699b6f59487d3456f1c5e5f01 (diff)
downloadcrawler-4174158dc75b5ed892b293b18b7dd5c85aa36f2f.tar.gz
crawler-4174158dc75b5ed892b293b18b7dd5c85aa36f2f.tar.bz2
added void * userdata to initModule
Diffstat (limited to 'include')
-rwxr-xr-xinclude/module/ModuleLoader.hpp28
-rwxr-xr-xinclude/module/ModuleRegistry.hpp20
2 files changed, 24 insertions, 24 deletions
diff --git a/include/module/ModuleLoader.hpp b/include/module/ModuleLoader.hpp
index 9626972..6eb9079 100755
--- a/include/module/ModuleLoader.hpp
+++ b/include/module/ModuleLoader.hpp
@@ -43,14 +43,14 @@ class BaseModuleLoader {
mapType m_modules;
public:
-
- BaseModuleLoader( const std::vector<std::string> files )
+
+ BaseModuleLoader( const std::vector<std::string> files, void *user_data = 0 )
{
Module< Interface, CtorParams> m;
for( std::vector<std::string>::const_iterator it = files.begin( ); it != files.end( ); it++ ) {
#ifndef _WIN32
- m.handle = dlopen( it->c_str( ), RTLD_NOW );
+ m.handle = dlopen( it->c_str( ), RTLD_NOW | RTLD_LOCAL );
#else
m.handle = LoadLibrary( it->c_str( ) );
#endif
@@ -81,7 +81,7 @@ class BaseModuleLoader {
}
if( m.registry->initModule != 0 ) {
- m.registry->initModule( );
+ m.registry->initModule( user_data );
}
m_modules.insert( std::make_pair( m.registry->name, m ) );
@@ -131,8 +131,8 @@ class ModuleLoader< Interface, NullType > : public BaseModuleLoader< Interface,
{
public:
- ModuleLoader< Interface >( const std::vector<std::string> files )
- : BaseModuleLoader< Interface >(files ) { }
+ ModuleLoader< Interface >( const std::vector<std::string> files, void *user_data = 0 )
+ : BaseModuleLoader< Interface >( files, user_data ) { }
Interface *create( std::string subclass )
{
@@ -160,8 +160,8 @@ class ModuleLoader< Interface, TYPELIST_1( T1 ) > : public BaseModuleLoader< Int
{
public:
- ModuleLoader< Interface, TYPELIST_1( T1 ) >( const std::vector<std::string> files )
- : BaseModuleLoader< Interface, TYPELIST_1( T1 ) >( files ) { }
+ ModuleLoader< Interface, TYPELIST_1( T1 ) >( const std::vector<std::string> files, void *user_data = 0 )
+ : BaseModuleLoader< Interface, TYPELIST_1( T1 ) >( files, user_data ) { }
Interface *create( std::string subclass, T1 t1 )
{
@@ -189,8 +189,8 @@ class ModuleLoader< Interface, TYPELIST_2( T1, T2 ) > : public BaseModuleLoader<
{
public:
- ModuleLoader< Interface, TYPELIST_2( T1, T2 ) >( const std::vector<std::string> files )
- : BaseModuleLoader< Interface, TYPELIST_2( T1, T2 ) >( files ) { }
+ ModuleLoader< Interface, TYPELIST_2( T1, T2 ) >( const std::vector<std::string> files, void *user_data = 0 )
+ : BaseModuleLoader< Interface, TYPELIST_2( T1, T2 ) >( files, user_data ) { }
Interface *create( std::string subclass, T1 t1, T2 t2 )
{
@@ -218,8 +218,8 @@ class ModuleLoader< Interface, TYPELIST_3( T1, T2, T3 ) > : public BaseModuleLoa
{
public:
- ModuleLoader< Interface, TYPELIST_3( T1, T2, T3 ) >( const std::vector<std::string> files )
- : BaseModuleLoader< Interface, TYPELIST_3( T1, T2, T3 ) >( files ) { }
+ ModuleLoader< Interface, TYPELIST_3( T1, T2, T3 ) >( const std::vector<std::string> files, void *user_data = 0 )
+ : BaseModuleLoader< Interface, TYPELIST_3( T1, T2, T3 ) >( files, user_data ) { }
Interface *create( std::string subclass, T1 t1, T2 t2, T3 t3 )
{
@@ -247,8 +247,8 @@ class ModuleLoader< Interface, TYPELIST_4( T1, T2, T3, T4 ) > : public BaseModul
{
public:
- ModuleLoader< Interface, TYPELIST_4( T1, T2, T3, T4 ) >( const std::vector<std::string> files )
- : BaseModuleLoader< Interface, TYPELIST_4( T1, T2, T3, T4 ) >( files ) { }
+ ModuleLoader< Interface, TYPELIST_4( T1, T2, T3, T4 ) >( const std::vector<std::string> files, void *user_data = 0 )
+ : BaseModuleLoader< Interface, TYPELIST_4( T1, T2, T3, T4 ) >( files, user_data ) { }
Interface *create( std::string subclass, T1 t1, T2 t2, T3 t3, T4 t4 )
{
diff --git a/include/module/ModuleRegistry.hpp b/include/module/ModuleRegistry.hpp
index d8ee90c..d98c9ba 100755
--- a/include/module/ModuleRegistry.hpp
+++ b/include/module/ModuleRegistry.hpp
@@ -11,13 +11,13 @@ struct ModuleRegistry;
template< typename Interface>
struct ModuleRegistry< Interface > {
std::string name;
- void (*initModule)( );
+ void (*initModule)( void *user_data );
void (*destroyModule)( );
Interface *(*create)( );
void (*destroy)( Interface *obj );
ModuleRegistry( std::string _name,
- void (*_initModule)( ),
+ void (*_initModule)( void *user_data ),
void (*_destroyModule)( ),
Interface *(*_create)( ),
void (*_destroy)( Interface *obj ) )
@@ -31,13 +31,13 @@ struct ModuleRegistry< Interface > {
template< typename Interface, typename P1 >
struct ModuleRegistry< Interface, TYPELIST_1( P1 ) > {
std::string name;
- void (*initModule)( );
+ void (*initModule)( void *user_data );
void (*destroyModule)( );
Interface *(*create)( P1 );
void (*destroy)( Interface *obj );
ModuleRegistry( std::string _name,
- void (*_initModule)( ),
+ void (*_initModule)( void *user_data ),
void (*_destroyModule)( ),
Interface *(*_create)( P1 ),
void (*_destroy)( Interface *obj ) )
@@ -51,13 +51,13 @@ struct ModuleRegistry< Interface, TYPELIST_1( P1 ) > {
template< typename Interface, typename P1, typename P2 >
struct ModuleRegistry< Interface, TYPELIST_2( P1, P2 ) > {
std::string name;
- void (*initModule)( );
+ void (*initModule)( void *user_data );
void (*destroyModule)( );
Interface *(*create)( P1, P2 );
void (*destroy)( Interface *obj );
ModuleRegistry( std::string _name,
- void (*_initModule)( ),
+ void (*_initModule)( void *user_data ),
void (*_destroyModule)( ),
Interface *(*_create)( P1, P2 ),
void (*_destroy)( Interface *obj ) )
@@ -71,13 +71,13 @@ struct ModuleRegistry< Interface, TYPELIST_2( P1, P2 ) > {
template< typename Interface, typename P1, typename P2, typename P3 >
struct ModuleRegistry< Interface, TYPELIST_3( P1, P2, P3 ) > {
std::string name;
- void (*initModule)( );
+ void (*initModule)( void *user_data );
void (*destroyModule)( );
Interface *(*create)( P1, P2, P3 );
void (*destroy)( Interface *obj );
ModuleRegistry( std::string _name,
- void (*_initModule)( ),
+ void (*_initModule)( void *user_data ),
void (*_destroyModule)( ),
Interface *(*_create)( P1, P2, P3 ),
void (*_destroy)( Interface *obj ) )
@@ -91,13 +91,13 @@ struct ModuleRegistry< Interface, TYPELIST_3( P1, P2, P3 ) > {
template< typename Interface, typename P1, typename P2, typename P3, typename P4 >
struct ModuleRegistry< Interface, TYPELIST_4( P1, P2, P3, P4 ) > {
std::string name;
- void (*initModule)( );
+ void (*initModule)( void *user_data );
void (*destroyModule)( );
Interface *(*create)( P1, P2, P3, P4 );
void (*destroy)( Interface *obj );
ModuleRegistry( std::string _name,
- void (*_initModule)( ),
+ void (*_initModule)( void *user_data ),
void (*_destroyModule)( ),
Interface *(*_create)( P1, P2, P3, P4 ),
void (*_destroy)( Interface *obj ) )