Пример #1
0
        public static TGrainInterface GetPartitionGrain <TGrainInterface>(this IClientSetPartitioner <TGrainInterface> partitioner, IGrainFactory grainFactory, string clientSetId, Guid hubTypeId)
            where TGrainInterface : IClientSetPartitionGrain
        {
            var partitionId = partitioner.GetPartitionId(clientSetId, hubTypeId);

            return(grainFactory.GetGrain <TGrainInterface>(HubTypedKeyUtils.ToHubTypedKeyString(partitionId, hubTypeId)));
        }
 public SampleHub(IOptions <OrleansOptions <SampleHub> > options,
                  IClientSetPartitioner <IGroupPartitionGrain> groupPartitioner,
                  IClientSetPartitioner <IUserPartitionGrain> userPartitioner)
 {
     _clusterClient    = options.Value.ClusterClient;
     _groupPartitioner = groupPartitioner;
     _userPartitioner  = userPartitioner;
 }
 public ClientGrain(IClientSetPartitioner <IGroupPartitionGrain> groupPartitioner,
                    IClientSetPartitioner <IUserPartitionGrain> userPartitioner,
                    ILogger <ClientGrain> logger)
 {
     _groupPartitioner = groupPartitioner;
     _userPartitioner  = userPartitioner;
     _logger           = logger;
 }
 public OrleansHubLifetimeManager(IOptions <OrleansOptions <THub> > options,
                                  IClientSetPartitioner <IGroupPartitionGrain> groupPartitioner,
                                  IClientSetPartitioner <IUserPartitionGrain> userPartitioner,
                                  IUserIdProvider userIdProvider,
                                  ILogger <OrleansHubLifetimeManager <THub> > logger)
 {
     _options          = options.Value;
     _clusterClient    = options.Value.ClusterClient;
     _groupPartitioner = groupPartitioner;
     _userPartitioner  = userPartitioner;
     _userIdProvider   = userIdProvider;
     _logger           = logger;
 }
Пример #5
0
        public static async Task <IEnumerable <string> > GetAllClientSetIdsAsync <TGrainInterface>(this IClientSetPartitioner <TGrainInterface> partitioner, IGrainFactory grainFactory, Guid hubTypeId)
            where TGrainInterface : IClientSetPartitionGrain
        {
            var tasks  = partitioner.GetAllPartitionGrains(grainFactory, hubTypeId).Select(partition => partition.GetClientSetIdsAsync());
            var result = await Task.WhenAll(tasks);

            return(result.SelectMany(_ => _));
        }
Пример #6
0
        public static IEnumerable <TGrainInterface> GetAllPartitionGrains <TGrainInterface>(this IClientSetPartitioner <TGrainInterface> partitioner, IGrainFactory grainFactory, Guid hubTypeId)
            where TGrainInterface : IClientSetPartitionGrain
        {
            var partitionIds = partitioner.GetPartitionIds(hubTypeId);

            return(partitionIds.Select(id => grainFactory.GetGrain <TGrainInterface>(HubTypedKeyUtils.ToHubTypedKeyString(id, hubTypeId))));
        }
 public SampleGrain(IClientSetPartitioner <IGroupPartitionGrain> groupPartitioner,
                    IClientSetPartitioner <IUserPartitionGrain> userPartitioner)
 {
     _groupPartitioner = groupPartitioner;
     _userPartitioner  = userPartitioner;
 }