Пример #1
0
 private void StopGrid(StorageMutability mutability)
 {
     if (_igniteGrids[(int)mutability] != null)
     {
         Ignition.Stop(_igniteGrids[(int)mutability].Name, false);
         _igniteGrids[(int)mutability] = null;
     }
 }
Пример #2
0
        public ServerSubGridTree(byte numLevels,
                                 double cellSize,
                                 ISubGridFactory subGridFactory,
                                 StorageMutability mutability) : base(numLevels, cellSize, subGridFactory)
        {
            IsMutable = mutability == StorageMutability.Mutable;

            SetDefaultCachingStrategy();
        }
Пример #3
0
        public static Guid ThisNodeID(StorageMutability mutability)
        {
            if (tRexNodeIDs[(int)mutability].Equals(Guid.Empty))
            {
                tRexNodeIDs[(int)mutability] = Guid.Parse(DIContext.Obtain <ITRexGridFactory>().Grid(mutability).GetCluster().GetLocalNode().GetAttribute <string>("TRexNodeId"));
            }

            return(tRexNodeIDs[(int)mutability]);
        }
Пример #4
0
 public static string SpatialCacheName(StorageMutability mutability, FileSystemStreamType streamType)
 {
     return(streamType switch
     {
         FileSystemStreamType.ProductionDataXML => SiteModelsCacheName(mutability),
         FileSystemStreamType.SubGridDirectory => SpatialSubGridDirectoryCacheName(mutability),
         FileSystemStreamType.SubGridSegment => SpatialSubGridSegmentCacheName(mutability),
         FileSystemStreamType.SubGridExistenceMap => ProductionDataExistenceMapCacheName(mutability),
         _ => string.Empty,
     });
Пример #5
0
        /// <summary>
        /// Constructs a site model meta data manager instance oriented to the TRex grid that is the primary grid
        /// referenced by the DI'd SiteModels instance
        /// </summary>
        public SiteModelMetadataManager(StorageMutability mutability)
        {
            // Obtain the ignite reference for the primary grid orientation of SiteModels
            var ignite = DIContext.Obtain <ITRexGridFactory>()?.Grid(mutability);

            metaDataCache = ignite?.GetOrCreateCache <Guid, ISiteModelMetadata>(ConfigureCache());

            if (metaDataCache == null)
            {
                throw new TRexException($"Failed to get or create Ignite cache {TRexCaches.SiteModelMetadataCacheName()}, ignite reference is {ignite}");
            }
        }
Пример #6
0
 public IStorageProxy PrimaryStorageProxy(StorageMutability mutability)
 {
     return(mutability == StorageMutability.Immutable ? PrimaryImmutableStorageProxy : PrimaryMutableStorageProxy);
 }
Пример #7
0
 /// <summary>
 /// Constructs an instance using the supplied storage proxy
 /// </summary>
 public SurveyedSurfaceManager(StorageMutability mutability)
 {
     _writeStorageProxy = DIContext.Obtain <ISiteModels>().PrimaryMutableStorageProxy;
     _readStorageProxy  = DIContext.Obtain <ISiteModels>().PrimaryStorageProxy(mutability);
 }
Пример #8
0
 /// <summary>
 /// Constructs an instance using the supplied storage proxy
 /// </summary>
 public AlignmentManager(StorageMutability mutability)
 {
     _writeStorageProxy = DIContext.Obtain <ISiteModels>().PrimaryMutableStorageProxy;
     _readStorageProxy  = DIContext.Obtain <ISiteModels>().PrimaryStorageProxy(mutability);
 }
Пример #9
0
 public ISiteModel NewSiteModel_NonTransient(Guid id, StorageMutability requiredStorageRepresentation) => new SiteModel(id, requiredStorageRepresentation, false);
Пример #10
0
 /// <summary>
 /// Returns the name of the spatial grid cache to use to locate cell and cell pass information
 /// </summary>
 public static string SpatialSubGridSegmentCacheName(StorageMutability mutability) => mutability == StorageMutability.Mutable ? kSpatialSubGridSegmentMutable : kSpatialSubGridSegmentImmutable;
Пример #11
0
 /// <summary>
 /// Returns the name of the spatial grid cache to use to locate cell and cell pass information
 /// </summary>
 public static string SpatialSubGridDirectoryCacheName(StorageMutability mutability) => mutability == StorageMutability.Mutable ? kSpatialSubGridDirectoryMutable : kSpatialSubGridDirectoryImmutable;
Пример #12
0
 /// <summary>
 /// Creates the storage proxy to be used.
 /// This factory method provides access to the immutable grid storage
 /// </summary>
 public IStorageProxy Storage(StorageMutability mutability) => mutability == StorageMutability.Immutable ? ImmutableGridStorage() : MutableGridStorage();
Пример #13
0
 public static IStorageProxy Instance(StorageMutability mutability)
 {
     return(DIContext.Obtain <IStorageProxyFactory>()?.Storage(mutability));
 }
Пример #14
0
 /// <summary>
 /// Default no-arg constructor that sets the grid and cache name to default values
 /// </summary>
 public DesignsService(StorageMutability Mutability) : base(TRexGrids.GridName(Mutability), "DesignsService")
 {
     CacheName = TRexCaches.ImmutableNonSpatialCacheName();
 }
Пример #15
0
 /// <summary>
 /// Default no-arg constructor. Made private to enforce provision of storage proxy
 /// </summary>
 public SiteModels(StorageMutability primaryMutability)
 {
     PrimaryMutability = primaryMutability;
 }
Пример #16
0
 /// <summary>
 /// Creates an appropriate new Ignite grid reference depending on the TRex Grid passed in.
 /// If the grid reference has previously been requested it returned from a cached reference.
 /// </summary>
 public IIgnite Grid(StorageMutability mutability, IgniteConfiguration cfg = null)
 {
     return(_igniteGrids[(int)mutability] ??= IgniteGridFactory(TRexGrids.GridName(mutability), cfg));
 }
Пример #17
0
        public void dumpKeysToFile(StorageMutability mutability, string fileName)
        {
            try
            {
                var ignite = DIContext.Obtain <ITRexGridFactory>()?.Grid(mutability);

                if (ignite == null)
                {
                    Console.WriteLine($@"----> No ignite reference for {TRexGrids.GridName(mutability)} grid");
                    return;
                }

                using (var outFile = new FileStream(fileName, FileMode.Create))
                {
                    using (var writer = new StreamWriter(outFile)
                    {
                        NewLine = "\r\n"
                    })
                    {
                        if (mutability == StorageMutability.Immutable)
                        {
                            Console.WriteLine($"----> Writing keys for {TRexCaches.ImmutableNonSpatialCacheName()}");
                            try
                            {
                                writeKeys(TRexCaches.ImmutableNonSpatialCacheName(), writer, ignite.GetCache <INonSpatialAffinityKey, ISerialisedByteArrayWrapper>(TRexCaches.ImmutableNonSpatialCacheName()));
                            }
                            catch (Exception E)
                            {
                                writer.WriteLine($"Exception occurred: {E.Message}");
                            }

                            Console.WriteLine($"----> Writing keys for {TRexCaches.DesignTopologyExistenceMapsCacheName()}");
                            try
                            {
                                writeKeys(TRexCaches.DesignTopologyExistenceMapsCacheName(), writer, ignite.GetCache <INonSpatialAffinityKey, ISerialisedByteArrayWrapper>(TRexCaches.DesignTopologyExistenceMapsCacheName()));
                            }
                            catch (Exception E)
                            {
                                writer.WriteLine($"Exception occurred: {E.Message}");
                            }

                            Console.WriteLine($"----> Writing keys for {TRexCaches.SpatialSubGridDirectoryCacheName(StorageMutability.Immutable)}");
                            try
                            {
                                WriteKeysSpatial(TRexCaches.SpatialSubGridDirectoryCacheName(StorageMutability.Immutable), writer, ignite.GetCache <ISubGridSpatialAffinityKey, ISerialisedByteArrayWrapper>(TRexCaches.SpatialSubGridDirectoryCacheName(StorageMutability.Immutable)));
                            }
                            catch (Exception E)
                            {
                                writer.WriteLine($"Exception occurred: {E.Message}");
                            }

                            Console.WriteLine($"----> Writing keys for {TRexCaches.SpatialSubGridSegmentCacheName(StorageMutability.Immutable)}");
                            try
                            {
                                WriteKeysSpatial(TRexCaches.SpatialSubGridSegmentCacheName(StorageMutability.Immutable), writer, ignite.GetCache <ISubGridSpatialAffinityKey, ISerialisedByteArrayWrapper>(TRexCaches.SpatialSubGridSegmentCacheName(StorageMutability.Immutable)));
                            }
                            catch (Exception E)
                            {
                                writer.WriteLine($"Exception occurred: {E.Message}");
                            }

                            Console.WriteLine($"----> Writing keys for {TRexCaches.SiteModelChangeMapsCacheName()}");
                            try
                            {
                                writeSiteModelChangeMapQueueKeys(TRexCaches.SiteModelChangeMapsCacheName(), writer, ignite.GetCache <ISiteModelMachineAffinityKey, ISerialisedByteArrayWrapper>(TRexCaches.SiteModelChangeMapsCacheName()));
                            }
                            catch (Exception E)
                            {
                                writer.WriteLine($"Exception occurred: {E.Message}");
                            }
                        }

                        if (mutability == StorageMutability.Mutable)
                        {
                            Console.WriteLine($"----> Writing keys for {TRexCaches.MutableNonSpatialCacheName()}");
                            try
                            {
                                writeKeys(TRexCaches.MutableNonSpatialCacheName(), writer, ignite.GetCache <INonSpatialAffinityKey, ISerialisedByteArrayWrapper>(TRexCaches.MutableNonSpatialCacheName()));
                            }
                            catch (Exception E)
                            {
                                writer.WriteLine($"Exception occurred: {E.Message}");
                            }

                            Console.WriteLine($"----> Writing keys for {TRexCaches.SpatialSubGridDirectoryCacheName(StorageMutability.Mutable)}");
                            try
                            {
                                WriteKeysSpatial(TRexCaches.SpatialSubGridDirectoryCacheName(StorageMutability.Mutable), writer, ignite.GetCache <ISubGridSpatialAffinityKey, ISerialisedByteArrayWrapper>(TRexCaches.SpatialSubGridDirectoryCacheName(StorageMutability.Mutable)));
                            }
                            catch (Exception E)
                            {
                                writer.WriteLine($"Exception occurred: {E.Message}");
                            }

                            Console.WriteLine($"----> Writing keys for {TRexCaches.SpatialSubGridSegmentCacheName(StorageMutability.Mutable)}");
                            try
                            {
                                WriteKeysSpatial(TRexCaches.SpatialSubGridSegmentCacheName(StorageMutability.Mutable), writer, ignite.GetCache <ISubGridSpatialAffinityKey, ISerialisedByteArrayWrapper>(TRexCaches.SpatialSubGridSegmentCacheName(StorageMutability.Mutable)));
                            }
                            catch (Exception E)
                            {
                                writer.WriteLine($"Exception occurred: {E.Message}");
                            }


                            Console.WriteLine($"----> Writing keys for {TRexCaches.TAGFileBufferQueueCacheName()}");
                            try
                            {
                                writeTAGFileBufferQueueKeys(TRexCaches.TAGFileBufferQueueCacheName(), writer, ignite.GetCache <ITAGFileBufferQueueKey, TAGFileBufferQueueItem>(TRexCaches.TAGFileBufferQueueCacheName()));
                            }
                            catch (Exception E)
                            {
                                writer.WriteLine($"Exception occurred: {E.Message}");
                            }

                            Console.WriteLine($"----> Writing keys for {TRexCaches.SegmentRetirementQueueCacheName()}");
                            try
                            {
                                writeSegmentRetireeQueueKeys(TRexCaches.SegmentRetirementQueueCacheName(), writer, ignite.GetCache <ISegmentRetirementQueueKey, SegmentRetirementQueueItem>(TRexCaches.SegmentRetirementQueueCacheName()));
                            }
                            catch (Exception E)
                            {
                                writer.WriteLine($"Exception occurred: {E.Message}");
                            }
                        }
                    }
                }
            }
            catch (Exception ee)
            {
                Console.WriteLine(ee.ToString());
            }
        }
Пример #18
0
 public static string GridName(StorageMutability Mutability) => Mutability == StorageMutability.Mutable ? MutableGridName() : ImmutableGridName();
Пример #19
0
 /// <summary>
 /// Default no-arg constructor supplied default TRex grid and MutableNonSpatial cache name for surveyed surface information
 /// </summary>
 public SurveyedSurfaceService(StorageMutability mutability) : base(TRexGrids.GridName(mutability), "SurveyedSurfaceService")
 {
     CacheName = TRexCaches.ImmutableNonSpatialCacheName();
 }
Пример #20
0
 public ISiteModel NewSiteModel(StorageMutability requiredStorageRepresentation) => new SiteModel(requiredStorageRepresentation);
Пример #21
0
 public SurveyedSurfaceService(StorageMutability mutability, string cacheName) : this(mutability)
 {
     CacheName = cacheName;
 }
Пример #22
0
 /// <summary>
 /// Constructor that obtains references to the mutable and immutable, spatial and non-spatial caches present in the grid
 /// </summary>
 /// <param name="mutability"></param>
 public StorageProxy_Ignite_Transactional(StorageMutability mutability) : base(mutability)
 {
 }
Пример #23
0
 public ServerSubGridTree(Guid siteModelId, StorageMutability mutability) :
     this(SubGridTreeConsts.SubGridTreeLevels, SubGridTreeConsts.DefaultCellSize,
          new SubGridFactory <NodeSubGrid, ServerSubGridTreeLeaf>(), mutability)
 {
     ID = siteModelId; // Ensure the ID of the sub grid tree matches the datamodel ID
 }
Пример #24
0
        protected SegmentRetirementQueueServiceProxyBase(StorageMutability mutability, RoleBasedServerNodeFilter nodeFilter)
        {
            NodeFilter = nodeFilter;

            _ignite = DIContext.Obtain <ITRexGridFactory>().Grid(mutability);
        }
Пример #25
0
 /// <summary>
 /// Constructor that obtains references to the mutable and immutable, spatial and non-spatial caches present in the grid
 /// </summary>
 /// <param name="mutability"></param>
 public StorageProxy_Ignite(StorageMutability mutability) : base(mutability)
 {
     EstablishCaches();
 }