33 #ifndef WALLAROO_DYNAMIC_LOADER_H_
34 #define WALLAROO_DYNAMIC_LOADER_H_
69 static cxx0x::shared_ptr< Plugin >
Load(
const std::string& fileName )
71 using namespace detail;
72 cxx0x::shared_ptr< Plugin > p(
new Plugin( fileName ) );
73 typedef std::vector< Descriptor >* (*Function)(void);
74 Function
GetClasses = p -> library.GetFunction< Function >(
"GetClasses" );
75 if ( GetClasses ==
nullptr )
throw WrongFile( fileName );
76 std::vector< Descriptor >* descriptors =
GetClasses();
77 for ( std::size_t i = 0; i < descriptors -> size(); ++i )
92 Plugin(
const std::string& fileName ) :
96 detail::DynamicLibrary library;
101 #endif // WALLAROO_DYNAMIC_LOADER_H_
static std::string Suffix()
Definition: dynamic_loader.h:86
WALLAROO_DLL_PREFIX std::vector< wallaroo::detail::Descriptor > * GetClasses()
Definition: dynamic_lib.h:49
Definition: dynamic_loader.h:60
static std::string Suffix()
Definition: dynamic_library.h:79
Definition: attribute.h:45
Definition: exceptions.h:176
static cxx0x::shared_ptr< Plugin > Load(const std::string &fileName)
Definition: dynamic_loader.h:69