Explorar o código

LibraryFactory: allow setting LoadHints for sym resolution

Isaiah Norton %!s(int64=8) %!d(string=hai) anos
pai
achega
194b684953

+ 6 - 3
Libs/Core/ctkAbstractLibraryFactory.h

@@ -56,13 +56,16 @@ public:
   /// Set list of required symbols
   void setSymbols(const QStringList& symbols);
 
-  /// 
+  /// Set lookup hints for symbol resolution. See QLibrary documentation.
+  void setLoadHints(QLibrary::LoadHints hints);
+
+  ///
   /// \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
   SymbolAddressType symbolAddress(const QString& symbol)const;
 

+ 10 - 2
Libs/Core/ctkAbstractLibraryFactory.tpp

@@ -65,6 +65,14 @@ void ctkFactoryLibraryItem<BaseClassType>::setSymbols(const QStringList& symbols
 
 //-----------------------------------------------------------------------------
 template<typename BaseClassType>
+void ctkFactoryLibraryItem<BaseClassType>
+::setLoadHints(QLibrary::LoadHints hints)
+{
+  this->Library.setLoadHints(hints);
+}
+
+//-----------------------------------------------------------------------------
+template<typename BaseClassType>
 bool ctkFactoryLibraryItem<BaseClassType>::resolve()
 {
   foreach(const QString& symbol, this->Symbols)
@@ -129,8 +137,8 @@ bool ctkAbstractLibraryFactory<BaseClassType>
 
 //-----------------------------------------------------------------------------
 template<typename BaseClassType>
-void ctkAbstractLibraryFactory<BaseClassType>::
-initItem(ctkAbstractFactoryItem<BaseClassType>* item)
+void ctkAbstractLibraryFactory<BaseClassType>
+::initItem(ctkAbstractFactoryItem<BaseClassType>* item)
 {
   this->ctkAbstractFileBasedFactory<BaseClassType>::initItem(item);
   dynamic_cast<ctkFactoryLibraryItem<BaseClassType>*>(item)->setSymbols(this->Symbols);