QGIS API Documentation
4.3.0-Master (9dce731a7a1)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
core
qgscacheindexfeatureid.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgscacheindexfeatureid.cpp
3
--------------------------------------
4
Date : 13.2.2013
5
Copyright : (C) 2013 Matthias Kuhn
6
Email : matthias at opengis dot ch
7
***************************************************************************
8
* *
9
* This program is free software; you can redistribute it and/or modify *
10
* it under the terms of the GNU General Public License as published by *
11
* the Free Software Foundation; either version 2 of the License, or *
12
* (at your option) any later version. *
13
* *
14
***************************************************************************/
15
16
#include "
qgscacheindexfeatureid.h
"
17
18
#include "
qgscachedfeatureiterator.h
"
19
#include "
qgsfeaturerequest.h
"
20
#include "
qgsvectorlayercache.h
"
21
22
QgsCacheIndexFeatureId::QgsCacheIndexFeatureId
(
QgsVectorLayerCache
*cachedVectorLayer )
23
: C( cachedVectorLayer )
24
{}
25
26
void
QgsCacheIndexFeatureId::flushFeature
(
const
QgsFeatureId
fid )
27
{
28
Q_UNUSED( fid )
29
}
30
31
void
QgsCacheIndexFeatureId::flush
()
32
{}
33
34
void
QgsCacheIndexFeatureId::requestCompleted
(
const
QgsFeatureRequest
&featureRequest,
const
QgsFeatureIds
&fids )
35
{
36
Q_UNUSED( featureRequest )
37
Q_UNUSED( fids )
38
}
39
40
bool
QgsCacheIndexFeatureId::getCacheIterator
(
QgsFeatureIterator
&featureIterator,
const
QgsFeatureRequest
&featureRequest )
41
{
42
switch
( featureRequest.
filterType
() )
43
{
44
case
Qgis::FeatureRequestFilterType::Fid
:
45
{
46
if
( C->isFidCached( featureRequest.
filterFid
() ) )
47
{
48
featureIterator =
QgsFeatureIterator
(
new
QgsCachedFeatureIterator
( C, featureRequest ) );
49
return
true
;
50
}
51
break
;
52
}
53
case
Qgis::FeatureRequestFilterType::Fids
:
54
{
55
if
( C->cachedFeatureIds().contains( featureRequest.
filterFids
() ) )
56
{
57
featureIterator =
QgsFeatureIterator
(
new
QgsCachedFeatureIterator
( C, featureRequest ) );
58
return
true
;
59
}
60
break
;
61
}
62
case
Qgis::FeatureRequestFilterType::NoFilter
:
63
case
Qgis::FeatureRequestFilterType::Expression
:
64
{
65
if
( C->hasFullCache() )
66
{
67
featureIterator =
QgsFeatureIterator
(
new
QgsCachedFeatureIterator
( C, featureRequest ) );
68
return
true
;
69
}
70
break
;
71
}
72
}
73
74
return
false
;
75
}
Qgis::FeatureRequestFilterType::Fid
@ Fid
Filter using feature ID.
Definition
qgis.h:2409
Qgis::FeatureRequestFilterType::Fids
@ Fids
Filter using feature IDs.
Definition
qgis.h:2411
Qgis::FeatureRequestFilterType::Expression
@ Expression
Filter using expression.
Definition
qgis.h:2410
Qgis::FeatureRequestFilterType::NoFilter
@ NoFilter
No filter is applied.
Definition
qgis.h:2408
QgsCacheIndexFeatureId::QgsCacheIndexFeatureId
QgsCacheIndexFeatureId(QgsVectorLayerCache *)
Definition
qgscacheindexfeatureid.cpp:22
QgsCacheIndexFeatureId::requestCompleted
void requestCompleted(const QgsFeatureRequest &featureRequest, const QgsFeatureIds &fids) override
Implement this method to update the indices, in case you need information contained by the request to...
Definition
qgscacheindexfeatureid.cpp:34
QgsCacheIndexFeatureId::flush
void flush() override
Sometimes, the whole cache changes its state and its easier to just withdraw everything.
Definition
qgscacheindexfeatureid.cpp:31
QgsCacheIndexFeatureId::getCacheIterator
bool getCacheIterator(QgsFeatureIterator &featureIterator, const QgsFeatureRequest &featureRequest) override
Is called when a feature request is issued on a cached layer.
Definition
qgscacheindexfeatureid.cpp:40
QgsCacheIndexFeatureId::flushFeature
void flushFeature(QgsFeatureId fid) override
Is called whenever a feature is removed from the cache.
Definition
qgscacheindexfeatureid.cpp:26
QgsCachedFeatureIterator
Delivers features from the cache.
Definition
qgscachedfeatureiterator.h:35
QgsFeatureIterator
Wrapper for iterator of features from vector data provider or vector layer.
Definition
qgsfeatureiterator.h:284
QgsFeatureRequest
Wraps a request for features to a vector layer (or directly its vector data provider).
Definition
qgsfeaturerequest.h:85
QgsFeatureRequest::filterType
Qgis::FeatureRequestFilterType filterType() const
Returns the attribute/ID filter type which is currently set on this request.
Definition
qgsfeaturerequest.h:320
QgsFeatureRequest::filterFids
const QgsFeatureIds & filterFids() const
Returns the feature IDs that should be fetched.
Definition
qgsfeaturerequest.h:457
QgsFeatureRequest::filterFid
QgsFeatureId filterFid() const
Returns the feature ID that should be fetched.
Definition
qgsfeaturerequest.h:439
QgsVectorLayerCache
Caches features for a given QgsVectorLayer.
Definition
qgsvectorlayercache.h:48
qgscachedfeatureiterator.h
qgscacheindexfeatureid.h
QgsFeatureIds
QSet< QgsFeatureId > QgsFeatureIds
Definition
qgsfeatureid.h:41
QgsFeatureId
qint64 QgsFeatureId
64 bit feature ids negative numbers are used for uncommitted/newly added features
Definition
qgsfeatureid.h:32
qgsfeaturerequest.h
qgsvectorlayercache.h
Generated on
for QGIS API Documentation by
1.17.0