Exemplo n.º 1
0
        public Task <string> CheckProviderType()
        {
            IGrainStorage grainStorage = GrainStorageHelpers.GetGrainStorage(GetType(), this.ServiceProvider);

            Assert.NotNull(grainStorage);
            return(Task.FromResult(grainStorage.GetType().FullName));
        }
Exemplo n.º 2
0
        public IStorage <TGrainState> GetStorage <TGrainState>(IGrainContext grainContext)
        {
            if (grainContext is null)
            {
                throw new ArgumentNullException(nameof(grainContext));
            }
            var           grainType     = grainContext.GrainInstance?.GetType() ?? throw new ArgumentNullException(nameof(IGrainContext.GrainInstance));
            IGrainStorage grainStorage  = GrainStorageHelpers.GetGrainStorage(grainType, ServiceProvider);
            string        grainTypeName = grainContext.GrainInstance.GetType().FullName;

            return(new StateStorageBridge <TGrainState>(grainTypeName, grainContext.GrainReference, grainStorage, this.loggerFactory));
        }
Exemplo n.º 3
0
        private Task OnSetupState(CancellationToken ct)
        {
            if (ct.IsCancellationRequested)
            {
                return(Task.CompletedTask);
            }
            IGrainContextAccessor grainContextAccessor = this.ServiceProvider.GetRequiredService <IGrainContextAccessor>();
            Factory <IGrainContext, ILogConsistencyProtocolServices> protocolServicesFactory = this.ServiceProvider.GetRequiredService <Factory <IGrainContext, ILogConsistencyProtocolServices> >();
            var grainContext = grainContextAccessor.GrainContext;
            ILogViewAdaptorFactory consistencyProvider = SetupLogConsistencyProvider(grainContext);
            IGrainStorage          grainStorage        = consistencyProvider.UsesStorageProvider ? GrainStorageHelpers.GetGrainStorage(grainContext?.GrainInstance.GetType(), this.ServiceProvider) : null;

            InstallLogViewAdaptor(grainContext, protocolServicesFactory, consistencyProvider, grainStorage);
            return(Task.CompletedTask);
        }