internal GenericNativeIndexAccessor(PageCache pageCache, FileSystemAbstraction fs, File storeFile, IndexLayout <GenericKey, NativeIndexValue> layout, RecoveryCleanupWorkCollector recoveryCleanupWorkCollector, IndexProvider.Monitor monitor, StoreIndexDescriptor descriptor, IndexSpecificSpaceFillingCurveSettingsCache spaceFillingCurveSettings, SpaceFillingCurveConfiguration configuration, IndexDropAction dropAction, bool readOnly) : base(pageCache, fs, storeFile, layout, monitor, descriptor, new SpaceFillingCurveSettingsWriter(spaceFillingCurveSettings), readOnly) { this._spaceFillingCurveSettings = spaceFillingCurveSettings; this._configuration = configuration; this._dropAction = dropAction; instantiateTree(recoveryCleanupWorkCollector, HeaderWriter); }
internal GenericNativeIndexProvider(IndexDirectoryStructure.Factory directoryStructureFactory, PageCache pageCache, FileSystemAbstraction fs, Monitor monitor, RecoveryCleanupWorkCollector recoveryCleanupWorkCollector, bool readOnly, Config config) : base(Descriptor, directoryStructureFactory, pageCache, fs, monitor, recoveryCleanupWorkCollector, readOnly) { this._configuredSettings = new ConfiguredSpaceFillingCurveSettingsCache(config); this._configuration = getConfiguredSpaceFillingCurveConfiguration(config); this._archiveFailedIndex = config.Get(GraphDatabaseSettings.archive_failed_index); this._dropAction = new FileSystemIndexDropAction(fs, directoryStructure()); }
private void AddTilesIntersectingEnvelopeAt(SpaceFillingCurveConfiguration config, SpaceFillingCurveMonitor monitor, int depth, int maxDepth, SearchEnvelope search, SearchEnvelope currentExtent, CurveRule curve, long left, long right, List <LongRange> results) { if (right - left == 1) { long[] coord = NormalizedCoordinateFor(left, _maxLevel); if (search.Contains(coord)) { LongRange current = (results.Count > 0) ? results[results.Count - 1] : null; if (current != null && current.Max == left - 1) { current.ExpandToMax(left); } else { current = new LongRange(left); results.Add(current); } if (monitor != null) { monitor.AddRangeAtDepth(depth); monitor.AddToCoveredArea(currentExtent.Area); } } } else if (search.Intersects(currentExtent)) { double overlap = search.FractionOf(currentExtent); if (config.StopAtThisDepth(overlap, depth, maxDepth)) { // Note that LongRange upper bound is inclusive, hence the '-1' in several places LongRange current = (results.Count > 0) ? results[results.Count - 1] : null; if (current != null && current.Max == left - 1) { current.ExpandToMax(right - 1); } else { current = new LongRange(left, right - 1); results.Add(current); } if (monitor != null) { monitor.AddRangeAtDepth(depth); monitor.AddToCoveredArea(currentExtent.Area); } } else { long width = (right - left) / _quadFactor; for (int i = 0; i < _quadFactor; i++) { int npoint = curve.NpointForIndex(i); SearchEnvelope quadrant = currentExtent.Quadrant(BitValues(npoint)); AddTilesIntersectingEnvelopeAt(config, monitor, depth + 1, maxDepth, search, quadrant, curve.ChildAt(i), left + i * width, left + (i + 1) * width, results); } } } }
internal GenericNativeIndexPopulator(PageCache pageCache, FileSystemAbstraction fs, File storeFile, IndexLayout <GenericKey, NativeIndexValue> layout, IndexProvider.Monitor monitor, StoreIndexDescriptor descriptor, IndexSpecificSpaceFillingCurveSettingsCache spatialSettings, IndexDirectoryStructure directoryStructure, SpaceFillingCurveConfiguration configuration, IndexDropAction dropAction, bool archiveFailedIndex) : base(pageCache, fs, storeFile, layout, monitor, descriptor, new SpaceFillingCurveSettingsWriter(spatialSettings)) { this._spatialSettings = spatialSettings; this._directoryStructure = directoryStructure; this._configuration = configuration; this._dropAction = dropAction; this._archiveFailedIndex = archiveFailedIndex; }
internal PartAccessor(PageCache pageCache, FileSystemAbstraction fs, SpatialIndexFiles.SpatialFileLayout fileLayout, RecoveryCleanupWorkCollector recoveryCleanupWorkCollector, IndexProvider.Monitor monitor, StoreIndexDescriptor descriptor, SpaceFillingCurveConfiguration searchConfiguration, bool readOnly) : base(pageCache, fs, fileLayout.IndexFile, fileLayout.Layout, monitor, descriptor, NO_HEADER_WRITER, readOnly) { this.Layout = fileLayout.Layout; this.Descriptor = descriptor; this.SearchConfiguration = searchConfiguration; this.Crs = fileLayout.SpatialFile.crs; this.Settings = fileLayout.Settings; instantiateTree(recoveryCleanupWorkCollector, HeaderWriter); }
internal PartFactory(PageCache pageCache, FileSystemAbstraction fs, SpatialIndexFiles spatialIndexFiles, StoreIndexDescriptor descriptor, IndexProvider.Monitor monitor, SpaceFillingCurveConfiguration configuration) { this.PageCache = pageCache; this.Fs = fs; this.SpatialIndexFiles = spatialIndexFiles; this.Descriptor = descriptor; this.Monitor = monitor; this.Configuration = configuration; }
public SpatialIndexProvider(PageCache pageCache, FileSystemAbstraction fs, IndexDirectoryStructure.Factory directoryStructure, Monitor monitor, RecoveryCleanupWorkCollector recoveryCleanupWorkCollector, bool readOnly, Config config) : base(_spatialProviderDescriptor, directoryStructure) { this._pageCache = pageCache; this._fs = fs; this._monitor = monitor; this._recoveryCleanupWorkCollector = recoveryCleanupWorkCollector; this._readOnly = readOnly; this._configuration = SpaceFillingCurveSettingsFactory.getConfiguredSpaceFillingCurveConfiguration(config); this._configuredSettings = GetConfiguredSpaceFillingCurveSettings(config); }
internal PartFactory(PageCache pageCache, FileSystemAbstraction fs, RecoveryCleanupWorkCollector recoveryCleanupWorkCollector, IndexProvider.Monitor monitor, StoreIndexDescriptor descriptor, SpatialIndexFiles spatialIndexFiles, SpaceFillingCurveConfiguration searchConfiguration, bool readOnly) { this.PageCache = pageCache; this.Fs = fs; this.RecoveryCleanupWorkCollector = recoveryCleanupWorkCollector; this.Monitor = monitor; this.Descriptor = descriptor; this.SpatialIndexFiles = spatialIndexFiles; this.SearchConfiguration = searchConfiguration; this.ReadOnly = readOnly; }
private GenericBlockBasedIndexPopulator InstantiatePopulator(StoreIndexDescriptor indexDescriptor) { Config config = Config.defaults(); ConfiguredSpaceFillingCurveSettingsCache settingsCache = new ConfiguredSpaceFillingCurveSettingsCache(config); IndexSpecificSpaceFillingCurveSettingsCache spatialSettings = new IndexSpecificSpaceFillingCurveSettingsCache(settingsCache, new Dictionary <Org.Neo4j.Values.Storable.CoordinateReferenceSystem, SpaceFillingCurveSettings>()); GenericLayout layout = new GenericLayout(1, spatialSettings); SpaceFillingCurveConfiguration configuration = SpaceFillingCurveSettingsFactory.getConfiguredSpaceFillingCurveConfiguration(config); GenericBlockBasedIndexPopulator populator = new GenericBlockBasedIndexPopulator(Storage.pageCache(), _fs, _indexFile, layout, EMPTY, indexDescriptor, spatialSettings, _directoryStructure, configuration, _dropAction, false, heapBufferFactory(1024)); populator.Create(); return(populator); }
internal virtual IList <LongRange> GetTilesIntersectingEnvelope(Envelope referenceEnvelope, SpaceFillingCurveConfiguration config, SpaceFillingCurveMonitor monitor) { SearchEnvelope search = new SearchEnvelope(this, referenceEnvelope); SearchEnvelope wholeExtent = new SearchEnvelope(0, this.Width, _nbrDim); List <LongRange> results = new List <LongRange>(config.InitialRangesListCapacity()); if (monitor != null) { monitor.RegisterSearchArea(search.Area); } AddTilesIntersectingEnvelopeAt(config, monitor, 0, config.MaxDepth(referenceEnvelope, this._range, _nbrDim, _maxLevel), search, wholeExtent, RootCurve(), 0, this.ValueWidth, results); return(results); }
public virtual IList <LongRange> GetTilesIntersectingEnvelope(double[] fromOrNull, double[] toOrNull, SpaceFillingCurveConfiguration config) { double[] from = fromOrNull == null ? _range.Min : fromOrNull.Clone(); double[] to = toOrNull == null ? _range.Max : toOrNull.Clone(); for (int i = 0; i < from.Length; i++) { if (from[i] > to[i]) { if (fromOrNull == null) { to[i] = from[i]; } else if (toOrNull == null) { from[i] = to[i]; } else { throw new System.ArgumentException("Invalid range, min greater than max: " + from[i] + " > " + to[i]); } } } Envelope referenceEnvelope = new Envelope(from, to); return(GetTilesIntersectingEnvelope(referenceEnvelope, config, null)); }
internal SpatialIndexPartReader(GBPTree <SpatialIndexKey, VALUE> tree, IndexLayout <SpatialIndexKey, VALUE> layout, IndexDescriptor descriptor, SpaceFillingCurveConfiguration configuration) : base(tree, layout, descriptor) { _spatial = ( SpatialLayout )layout; this._configuration = configuration; }
internal GenericNativeIndexReader(GBPTree <GenericKey, NativeIndexValue> tree, IndexLayout <GenericKey, NativeIndexValue> layout, IndexDescriptor descriptor, IndexSpecificSpaceFillingCurveSettingsCache spaceFillingCurveSettings, SpaceFillingCurveConfiguration configuration) : base(tree, layout, descriptor) { this._spaceFillingCurveSettings = spaceFillingCurveSettings; this._configuration = configuration; }
internal SpatialIndexPopulator(StoreIndexDescriptor descriptor, SpatialIndexFiles spatialIndexFiles, PageCache pageCache, FileSystemAbstraction fs, IndexProvider.Monitor monitor, SpaceFillingCurveConfiguration configuration) : base(new PartFactory(pageCache, fs, spatialIndexFiles, descriptor, monitor, configuration)) { }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: SpatialIndexAccessor(org.neo4j.storageengine.api.schema.StoreIndexDescriptor descriptor, org.neo4j.io.pagecache.PageCache pageCache, org.neo4j.io.fs.FileSystemAbstraction fs, org.neo4j.index.internal.gbptree.RecoveryCleanupWorkCollector recoveryCleanupWorkCollector, org.neo4j.kernel.api.index.IndexProvider.Monitor monitor, SpatialIndexFiles spatialIndexFiles, org.neo4j.gis.spatial.index.curves.SpaceFillingCurveConfiguration searchConfiguration, boolean readOnly) throws java.io.IOException internal SpatialIndexAccessor(StoreIndexDescriptor descriptor, PageCache pageCache, FileSystemAbstraction fs, RecoveryCleanupWorkCollector recoveryCleanupWorkCollector, IndexProvider.Monitor monitor, SpatialIndexFiles spatialIndexFiles, SpaceFillingCurveConfiguration searchConfiguration, bool readOnly) : base(new PartFactory(pageCache, fs, recoveryCleanupWorkCollector, monitor, descriptor, spatialIndexFiles, searchConfiguration, readOnly)) { this._descriptor = descriptor; spatialIndexFiles.LoadExistingIndexes(this); }
internal GenericBlockBasedIndexPopulator(PageCache pageCache, FileSystemAbstraction fs, File file, IndexLayout <GenericKey, NativeIndexValue> layout, IndexProvider.Monitor monitor, StoreIndexDescriptor descriptor, IndexSpecificSpaceFillingCurveSettingsCache spatialSettings, IndexDirectoryStructure directoryStructure, SpaceFillingCurveConfiguration configuration, IndexDropAction dropAction, bool archiveFailedIndex, ByteBufferFactory bufferFactory) : base(pageCache, fs, file, layout, monitor, descriptor, spatialSettings, directoryStructure, dropAction, archiveFailedIndex, bufferFactory) { this._spatialSettings = spatialSettings; this._configuration = configuration; }
internal PartPopulator(PageCache pageCache, FileSystemAbstraction fs, SpatialIndexFiles.SpatialFileLayout fileLayout, IndexProvider.Monitor monitor, StoreIndexDescriptor descriptor, SpaceFillingCurveConfiguration configuration) : base(pageCache, fs, fileLayout.IndexFile, fileLayout.Layout, monitor, descriptor, NO_HEADER_WRITER) { this.Configuration = configuration; this.Settings = fileLayout.Settings; this.Crs = fileLayout.SpatialFile.crs; }