19
19
#include " qgsvectorlayer.h"
20
20
#include " qgsmapserverlogger.h"
21
21
22
- #define MAX_N_LAYERS 50
22
+ // maximum number of layers in the cache (and upper limit for layers in one published project)
23
+ #define MAX_N_LAYERS 100
23
24
24
25
QgsMSLayerCache* QgsMSLayerCache::mInstance = 0 ;
25
26
@@ -40,7 +41,7 @@ QgsMSLayerCache::QgsMSLayerCache()
40
41
QgsMSLayerCache::~QgsMSLayerCache ()
41
42
{
42
43
QgsMSDebugMsg ( " removing all entries" );
43
- QMap <QPair<QString, QString>, QgsMSLayerCacheEntry>::iterator it;
44
+ QHash <QPair<QString, QString>, QgsMSLayerCacheEntry>::iterator it;
44
45
for ( it = mEntries .begin (); it != mEntries .end (); ++it )
45
46
{
46
47
delete it->layerPointer ;
@@ -57,7 +58,7 @@ void QgsMSLayerCache::insertLayer( const QString& url, const QString& layerName,
57
58
}
58
59
59
60
QPair<QString, QString> urlLayerPair = qMakePair ( url, layerName );
60
- QMap <QPair<QString, QString>, QgsMSLayerCacheEntry>::iterator it = mEntries .find ( urlLayerPair );
61
+ QHash <QPair<QString, QString>, QgsMSLayerCacheEntry>::iterator it = mEntries .find ( urlLayerPair );
61
62
if ( it != mEntries .end () )
62
63
{
63
64
delete it->layerPointer ;
@@ -76,7 +77,7 @@ void QgsMSLayerCache::insertLayer( const QString& url, const QString& layerName,
76
77
QgsMapLayer* QgsMSLayerCache::searchLayer ( const QString& url, const QString& layerName )
77
78
{
78
79
QPair<QString, QString> urlNamePair = qMakePair ( url, layerName );
79
- QMap <QPair<QString, QString>, QgsMSLayerCacheEntry>::iterator it = mEntries .find ( urlNamePair );
80
+ QHash <QPair<QString, QString>, QgsMSLayerCacheEntry>::iterator it = mEntries .find ( urlNamePair );
80
81
if ( it == mEntries .end () )
81
82
{
82
83
QgsMSDebugMsg ( " Layer not found in cache" );
@@ -121,8 +122,8 @@ void QgsMSLayerCache::removeLeastUsedEntry()
121
122
return ;
122
123
}
123
124
QgsMSDebugMsg ( " removeLeastUsedEntry" );
124
- QMap <QPair<QString, QString>, QgsMSLayerCacheEntry>::iterator it = mEntries .begin ();
125
- QMap <QPair<QString, QString>, QgsMSLayerCacheEntry>::iterator lowest_it = it;
125
+ QHash <QPair<QString, QString>, QgsMSLayerCacheEntry>::iterator it = mEntries .begin ();
126
+ QHash <QPair<QString, QString>, QgsMSLayerCacheEntry>::iterator lowest_it = it;
126
127
time_t lowest_time = it->lastUsedTime ;
127
128
128
129
for ( ; it != mEntries .end (); ++it )
0 commit comments