/// <summary> /// Initializes a new instance of the <see cref="ObjectActor"/> class. /// </summary> /// <param name="shardRegionResolver">Shard region resolver.</param> public ObjectActor(IShardRegionResolver shardRegionResolver) { if (shardRegionResolver == null) { throw new ArgumentNullException(nameof(shardRegionResolver)); } this.state.ObjectId = this.ExtractObjectId(); this.shardRegionArea = shardRegionResolver.GetShardRegion(ShardRegions.AREAREGION); }
/// <summary> /// Initializes a new instance of the <see cref="AreaActor"/> class. /// </summary> /// <param name="shardRegionResolver">Shard region resolver.</param> public AreaActor(IShardRegionResolver shardRegionResolver) { if (shardRegionResolver == null) { throw new ArgumentNullException(nameof(shardRegionResolver)); } ulong areaId = this.ExtractObjectId(); this.state = new AreaState(areaId); this.shardRegionObject = shardRegionResolver.GetShardRegion(ShardRegions.OBJECTREGION); }
private void InitializeShardRegions(ActorSystem system) { this.shardRegionResolver = new DefaultShardRegionResolver(ClusterSharding.Get(system)); this.shardRegionObject = ClusterSharding.Get(system).Start(typeName: ShardRegions.OBJECTREGION, entityProps: Props.Create(() => new ObjectActor(this.shardRegionResolver)), settings: ClusterShardingSettings.Create(system), messageExtractor: new ObjectRegionMessageExtractor(this.state.ShardCountObject)); this.shardRegionArea = ClusterSharding.Get(system).Start(typeName: ShardRegions.AREAREGION, entityProps: Props.Create(() => new AreaActor(this.shardRegionResolver)), settings: ClusterShardingSettings.Create(system), messageExtractor: new AreaRegionMessageExtractor(this.state.ShardCountArea)); }