diff options
author | Andreas Baumann <mail@andreasbaumann.cc> | 2014-10-05 12:39:14 +0200 |
---|---|---|
committer | Andreas Baumann <mail@andreasbaumann.cc> | 2014-10-05 12:39:14 +0200 |
commit | 4174158dc75b5ed892b293b18b7dd5c85aa36f2f (patch) | |
tree | 15833550838d912174c54d05583d5374f03c35e9 /include | |
parent | d207e5a4f68cf56699b6f59487d3456f1c5e5f01 (diff) | |
download | crawler-4174158dc75b5ed892b293b18b7dd5c85aa36f2f.tar.gz crawler-4174158dc75b5ed892b293b18b7dd5c85aa36f2f.tar.bz2 |
added void * userdata to initModule
Diffstat (limited to 'include')
-rwxr-xr-x | include/module/ModuleLoader.hpp | 28 | ||||
-rwxr-xr-x | include/module/ModuleRegistry.hpp | 20 |
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 ) ) |