34 QObject::connect( &mFileSystemWatcher, &QFileSystemWatcher::fileChanged,
this, &QgsCapabilitiesCache::removeChangedEntry );
36#if defined(Q_OS_LINUX)
37 QObject::connect( &mTimer, &QTimer::timeout,
this, &QgsCapabilitiesCache::removeOutdatedEntries );
57 if ( mCachedCapabilities.size() > mCacheSize )
60 const QHash<QString, QHash<QString, QDomDocument> >::iterator capIt = mCachedCapabilities.begin();
61 mFileSystemWatcher.removePath( capIt.key() );
62 mCachedCapabilities.erase( capIt );
64 QgsMessageLog::logMessage( QStringLiteral(
"Removed cached WMS capabilities document because all %1 cache slots were taken" ).arg( mCacheSize ), QStringLiteral(
"Server" ) );
67 if ( !mCachedCapabilities.contains( configFilePath ) )
69 mFileSystemWatcher.addPath( configFilePath );
70 mCachedCapabilities.insert( configFilePath, QHash<QString, QDomDocument>() );
73 mCachedCapabilities[ configFilePath ].insert( key, doc->cloneNode().toDocument() );
75#if defined(Q_OS_LINUX)
76 struct statfs sStatFS;
77 if ( statfs( configFilePath.toUtf8().constData(), &sStatFS ) == 0 &&
78 ( sStatFS.f_type == 0x6969 ||
79 sStatFS.f_type == 0x517b ||
80 sStatFS.f_type == 0xff534d42ul ||
81 sStatFS.f_type == 0xfe534d42ul ) )
83 const QFileInfo fi( configFilePath );
84 mCachedCapabilitiesTimestamps[ configFilePath ] = fi.lastModified();
void insertCapabilitiesDocument(const QString &configFilePath, const QString &key, const QDomDocument *doc)
Inserts new capabilities document (creates a copy of the document, does not take ownership)
static void logMessage(const QString &message, const QString &tag=QString(), Qgis::MessageLevel level=Qgis::MessageLevel::Warning, bool notifyUser=true)
Adds a message to the log instance (and creates it if necessary).