Ejemplo n.º 1
0
        /// <summary> Default constructor. </summary>
        public MemoryGrainStorage(string name, MemoryGrainStorageOptions options, ILogger <MemoryGrainStorage> logger, IGrainFactory grainFactory)
        {
            this.name   = name;
            this.logger = logger;

            //Init
            logger.LogInformation("Init: Name={Name} NumStorageGrains={NumStorageGrains}", name, options.NumStorageGrains);

            storageGrains = new Lazy <IMemoryStorageGrain> [options.NumStorageGrains];
            for (int i = 0; i < storageGrains.Length; i++)
            {
                int idx = i; // Capture variable to avoid modified closure error
                storageGrains[idx] = new Lazy <IMemoryStorageGrain>(() => grainFactory.GetGrain <IMemoryStorageGrain>(idx));
            }
        }
Ejemplo n.º 2
0
        /// <summary> Default constructor. </summary>
        public MemoryGrainStorage(string name, MemoryGrainStorageOptions options, ILoggerFactory loggerFactory, IGrainFactory grainFactory)
        {
            this.options      = options;
            this.name         = name;
            this.logger       = loggerFactory.CreateLogger($"{this.GetType().FullName}.{name}");
            this.grainFactory = grainFactory;

            //Init
            logger.LogInformation("Init: Name={Name} NumStorageGrains={NumStorageGrains}", name, this.options.NumStorageGrains);

            storageGrains = new Lazy <IMemoryStorageGrain> [this.options.NumStorageGrains];
            for (int i = 0; i < this.options.NumStorageGrains; i++)
            {
                int idx = i; // Capture variable to avoid modified closure error
                storageGrains[idx] = new Lazy <IMemoryStorageGrain>(() => this.grainFactory.GetGrain <IMemoryStorageGrain>(idx));
            }
        }