/// <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);
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
 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));
 }