| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 | 
							- /*=========================================================================
 
-   Library:   CTK
 
-   Copyright (c) Kitware Inc. 
 
-   All rights reserved.
 
-   Distributed under a BSD License. See LICENSE.txt file.
 
-   This software is distributed "AS IS" WITHOUT ANY WARRANTY; without even
 
-   the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
-   See the above copyright notice for more information.
 
- =========================================================================*/
 
- #ifndef __ctkAbstractLibraryFactory_h
 
- #define __ctkAbstractLibraryFactory_h
 
- // Qt includes
 
- #include <QFileInfo>
 
- #include <QLibrary>
 
- #include <QStringList>
 
- // CTK includes
 
- #include "ctkAbstractFactory.h"
 
- //----------------------------------------------------------------------------
 
- template<typename BaseClassType>
 
- class ctkFactoryLibraryItem : public ctkAbstractFactoryItem<BaseClassType>
 
- {
 
- protected:
 
-   typedef typename QHash<QString, void*>::const_iterator ConstIterator;
 
-   typedef typename QHash<QString, void*>::iterator       Iterator;
 
- public:
 
-   explicit ctkFactoryLibraryItem(const QString& key, const QString& path);
 
-   virtual bool load();
 
-   QString path()const;
 
-   virtual QString loadErrorString()const;
 
-   void setSymbols(const QStringList& symbols);
 
-   //-----------------------------------------------------------------------------
 
-   /// 
 
-   /// Resolve symbols
 
-   void resolve();
 
-   
 
-   //-----------------------------------------------------------------------------
 
-   /// 
 
-   /// Get symbol address
 
-   void* symbolAddress(const QString& symbol)const;
 
- private:
 
-   QLibrary              Library;
 
-   QString               Path;
 
-   QHash<QString, void*> ResolvedSymbols;
 
-   QStringList           Symbols;
 
- };
 
- //----------------------------------------------------------------------------
 
- template<typename BaseClassType, typename FactoryItemType>
 
- class ctkAbstractLibraryFactory : public ctkAbstractFactory<BaseClassType>
 
- {
 
- public:
 
-   //-----------------------------------------------------------------------------
 
-   /// 
 
-   /// Constructor
 
-   explicit ctkAbstractLibraryFactory();
 
-   virtual ~ctkAbstractLibraryFactory();
 
-   //-----------------------------------------------------------------------------
 
-   /// 
 
-   /// Set the list of symbols
 
-   void setSymbols(const QStringList& symbols);
 
-   //-----------------------------------------------------------------------------
 
-   /// 
 
-   /// Register a plugin in the factory
 
-   virtual bool registerLibrary(const QFileInfo& file, QString& key);
 
- private:
 
-   ctkAbstractLibraryFactory(const ctkAbstractLibraryFactory &);  /// Not implemented
 
-   void operator=(const ctkAbstractLibraryFactory&); /// Not implemented
 
-   QStringList Symbols;
 
- };
 
- #include "ctkAbstractLibraryFactory.tpp"
 
- #endif
 
 
  |