| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | 
							- /*=========================================================================
 
-   Library:   CTK
 
-   Copyright (c) Kitware Inc.
 
-   Licensed under the Apache License, Version 2.0 (the "License");
 
-   you may not use this file except in compliance with the License.
 
-   You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0.txt
 
-   Unless required by applicable law or agreed to in writing, software
 
-   distributed under the License is distributed on an "AS IS" BASIS,
 
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
-   See the License for the specific language governing permissions and
 
-   limitations under the License.
 
- =========================================================================*/
 
- #ifndef __ctkAbstractLibraryFactory_h
 
- #define __ctkAbstractLibraryFactory_h
 
- // Qt includes
 
- #include <QFileInfo>
 
- #include <QLibrary>
 
- #include <QStringList>
 
- // CTK includes
 
- #include "ctkAbstractFileBasedFactory.h"
 
- //----------------------------------------------------------------------------
 
- /// \ingroup Core
 
- template<typename BaseClassType>
 
- class ctkFactoryLibraryItem : public ctkAbstractFactoryFileBasedItem<BaseClassType>
 
- {
 
- protected:
 
-   typedef typename QHash<QString, void*>::const_iterator ConstIterator;
 
-   typedef typename QHash<QString, void*>::iterator       Iterator;
 
- public:
 
-   //explicit ctkFactoryLibraryItem(const QString& path);
 
-  
 
-   virtual bool load();
 
-   ///
 
-   /// Set list of required symbols
 
-   void setSymbols(const QStringList& symbols);
 
-   /// 
 
-   /// \brief Resolve symbols
 
-   /// \note The function will return False if it fails to resolve one
 
-   /// of the required symbols set using setSymbols(const QStringList&)
 
-   bool resolve();
 
-   
 
-   /// 
 
-   /// Get symbol address
 
-   void* symbolAddress(const QString& symbol)const;
 
- protected:
 
-   mutable QLibrary      Library;
 
-   QHash<QString, void*> ResolvedSymbols;
 
-   QStringList           Symbols;
 
- };
 
- //----------------------------------------------------------------------------
 
- /// \ingroup Core
 
- template<typename BaseClassType>
 
- class ctkAbstractLibraryFactory
 
-   : public ctkAbstractFileBasedFactory<BaseClassType>
 
- {
 
- public:
 
-   /// Set the list of symbols
 
-   void setSymbols(const QStringList& symbols);
 
- protected:
 
-   virtual bool isValidFile(const QFileInfo& file)const;
 
-   virtual void initItem(ctkAbstractFactoryItem<BaseClassType>* item);
 
- private:
 
-   QStringList Symbols;
 
- };
 
- #include "ctkAbstractLibraryFactory.tpp"
 
- #endif
 
 
  |