|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface ISpatialCacheManager
Provides access to members that control the Spatial Cache Management.
ISpatialCacheManager is an optional interface that can be used to enable and disable feature caching within a specified spatial envelope.
Enabling feature caching improves the performance of all spatial searches whose query geometry lies within the cached area and and also improves the performance of all queries that retrieve features by object ID (for example, GetRow, GetFeature, GetRows, and GetFeatures). At ArcGIS release 8.3 and earlier, caching of features using ISpatialCacheManager requires that there be an active edit session. At ArcGIS release 9.0 and higher, using ISpatialCacheManager does not require an active edit session.
Use of the cache is transparent to editing applications. Objects retrieved using non-recycling cursors may be updated and stored by the editing application. As in the uncached case, the geodatabase takes care of ensuring read and query consistency when queries are issued againt updated objects. The cache is exposed to end users as the edit cache in ArcMap for ArcGIS release 8.3 and earlier, and the map cache for ArcGIS releases 9.0 and higher. The cache improves performance significantly for network editing when working with ArcSDE geodatabases.
The SpatialCacheManager optimistically builds caches for features within the workspace. It caches the features in the cache extent for any open feature class. Note that opening a feature class that participates in a topology or geometric network will also open all other feature classes participating in the topology or geometric network. To correctly use the cache, you should be aware of which feature classes are open within a workspace. If a reference to the workspace is returned from a map document, the open feature classes will include all the feature classes for that workspace in the map. If you have opened the workspace through the Geodatabase API, by using a method such as IFeatureWorkspace::OpenFeatureDataset, only those features from feature classes that have been explicitly opened using the IFeatureWorkspace::OpenFeatureClass method will be cached.
IEnvelope
Method Summary | |
---|---|
void |
emptyCache()
Empties the spatial cache. |
void |
fillCache(IEnvelope pExtent)
Fills the spatial cache using the specified extent. |
IEnvelope |
getCacheExtent()
The extent of the spatial cache. |
boolean |
isCacheIsFull()
Indicates if the spatial cache is full. |
Method Detail |
---|
void fillCache(IEnvelope pExtent) throws IOException, AutomationException
The CacheIsFull property returns true if the cache is full (the cache is active). The FillCache method is used to make the cache active and to set the boundary of the cache. Calling this method causes the workspace to fetch objects from the database and fill the cache. Only features in open feature classes within the cache extent are fetched. Opening a feature class that participates in a topology or geometric network will also open all other feature classes participating in the topology or geometric network.
The time to fill the cache and the amount of memory consumed with the cache depends on the extent of the cache and the density and size of features in the feature classes being cached.
It should be noted that all attributes of a feature within the envelope will be cached when the call is made to FillCache. Also, only those features that are in currently open feature classes will be cached. Therefore if you only want to perform spatial searches against a specific feature class it would make sense to only have that feature class open when the cache is filled. The more feature classes open when FillCache is called the more expensive the fill cache operation is.
pExtent
- A reference to a com.esri.arcgis.geometry.IEnvelope (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void emptyCache() throws IOException, AutomationException
The EmptyCache method empties the cache and makes it inactive.
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.boolean isCacheIsFull() throws IOException, AutomationException
The CacheIsFull property returns true if the cache is full (the cache is active). The FillCache method is used to make the cache active and to set the boundary of the cache. Calling FillCache causes the workspace to fetch objects from the database and fill the cache. The time to fill the cache and the amount of memory consumed with the cache depends on the extent of the cache and the density and size of features in the feature classes being cached.
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IEnvelope getCacheExtent() throws IOException, AutomationException
The CacheExtent property returns the envelope that represents the current boundary of the cached area. An empty envelope is returned if the cache is empty (the cache is not active).
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |