コード例 #1
0
ファイル: ManagementGrain.cs プロジェクト: richorama/orleans
 public async Task SetSelectorStrategy(GrainInterfaceType interfaceType, VersionSelectorStrategy strategy)
 {
     CheckIfIsExistingInterface(interfaceType);
     await SetStrategy(
         store => store.SetSelectorStrategy(interfaceType, strategy),
         siloControl => siloControl.SetSelectorStrategy(interfaceType, strategy));
 }
コード例 #2
0
 public VersionSelectorManager(IServiceProvider serviceProvider, IOptions <GrainVersioningOptions> options)
 {
     this.serviceProvider    = serviceProvider;
     this.strategyFromConfig = serviceProvider.GetRequiredServiceByName <VersionSelectorStrategy>(options.Value.DefaultVersionSelectorStrategy);
     Default          = ResolveVersionSelector(serviceProvider, this.strategyFromConfig);
     versionSelectors = new Dictionary <GrainInterfaceType, IVersionSelector>();
 }
コード例 #3
0
        private static IVersionSelector ResolveVersionSelector(IServiceProvider serviceProvider,
                                                               VersionSelectorStrategy strategy)
        {
            var policyType = strategy.GetType();

            return(serviceProvider.GetRequiredServiceByKey <Type, IVersionSelector>(policyType));
        }
コード例 #4
0
 public VersionSelectorManager(IServiceProvider serviceProvider, GlobalConfiguration configuration)
 {
     this.serviceProvider    = serviceProvider;
     this.strategyFromConfig = configuration.DefaultVersionSelectorStrategy;
     Default          = ResolveVersionSelector(serviceProvider, strategyFromConfig);
     versionSelectors = new Dictionary <int, IVersionSelector>();
 }
コード例 #5
0
        private static IVersionSelector ResolveVersionSelector(IServiceProvider serviceProvider,
                                                               VersionSelectorStrategy strategy)
        {
            var policyType   = strategy.GetType();
            var directorType = typeof(IVersionSelector <>).MakeGenericType(policyType);

            return((IVersionSelector)serviceProvider.GetRequiredService(directorType));
        }
コード例 #6
0
 public void SetSelector(GrainInterfaceType interfaceType, VersionSelectorStrategy strategy)
 {
     if (strategy == null)
     {
         versionSelectors.Remove(interfaceType);
     }
     else
     {
         var selector = ResolveVersionSelector(this.serviceProvider, strategy);
         versionSelectors[interfaceType] = selector;
     }
 }
コード例 #7
0
        public void SetSelector(VersionSelectorStrategy strategy)
        {
            var selector = ResolveVersionSelector(this.serviceProvider, strategy ?? this.strategyFromConfig);

            Default = selector;
        }
コード例 #8
0
ファイル: ManagementGrain.cs プロジェクト: richorama/orleans
 public async Task SetSelectorStrategy(VersionSelectorStrategy strategy)
 {
     await SetStrategy(
         store => store.SetSelectorStrategy(strategy),
         siloControl => siloControl.SetSelectorStrategy(strategy));
 }
コード例 #9
0
 public async Task SetSelectorStrategy(int interfaceId, VersionSelectorStrategy strategy)
 {
     ThrowIfNotEnabled();
     await StoreGrain.SetSelectorStrategy(interfaceId, strategy);
 }
コード例 #10
0
 public async Task SetSelectorStrategy(VersionSelectorStrategy strategy)
 {
     ThrowIfNotEnabled();
     await StoreGrain.SetSelectorStrategy(strategy);
 }
コード例 #11
0
ファイル: SiloControl.cs プロジェクト: losta-shanghai/orleans
 public Task SetSelectorStrategy(int interfaceId, VersionSelectorStrategy strategy)
 {
     this.selectorManager.SetSelector(interfaceId, strategy);
     this.cachedVersionSelectorManager.ResetCache();
     return(Task.CompletedTask);
 }
コード例 #12
0
 public async Task SetSelectorStrategy(int ifaceId, VersionSelectorStrategy strategy)
 {
     this.State.VersionSelectorStrategies[ifaceId] = strategy;
     await this.WriteStateAsync();
 }
コード例 #13
0
 public async Task SetSelectorStrategy(VersionSelectorStrategy strategy)
 {
     this.State.SelectorOverride = strategy;
     await this.WriteStateAsync();
 }