--- /dev/null
+// =========================================================================
+// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
+// =========================================================================
+#ifndef __cpPlugins__Library__h__
+#define __cpPlugins__Library__h__
+
+#include <cpPlugins/Config.h>
+#include <set>
+
+namespace cpPlugins
+{
+ class ProcessObject;
+
+ /**
+ */
+ class CPPLUGINS_EXPORT Library
+ {
+ public:
+ typedef Library Self;
+
+ typedef std::set< std::string > TStringSet;
+
+ public:
+ Library( const std::string& fname );
+ virtual ~Library( );
+
+ bool Provides( const std::string& fname ) const;
+ const TStringSet& GetContents( ) const;
+ std::shared_ptr< ProcessObject > Create( const std::string& name );
+
+ const std::string& GetPath( ) const;
+
+ protected:
+ void _LoadLibrary( );
+ void* _CreateObject( const std::string& name );
+
+ protected:
+ std::string m_Path;
+ std::string m_Name;
+ void* m_Handle;
+ TStringSet m_Contents;
+ }; // end class
+} // end namespace
+
+#endif // __cpPlugins__Library__h__
+
+// eof - $RCSfile$