Beispiel #1
0
        private void OnModelUpdated(object sender, ModelTrackerCollection <TModel> .ModelUpdatedEventArgs e)
        {
            if (SendMessages == false)
            {
                return;
            }

            UpdateModel m = new UpdateModel();

            m.Id    = e.UpdatedModel.Id;
            m.Model = e.UpdatedModel;

            ShardUpdateModel.Send(m);
            UserUpdateModel.Send(m);
        }
Beispiel #2
0
        private void OnModelRemoved(object sender, ModelTrackerCollection <TModel> .ModelRemovedEventArgs e)
        {
            if (SendMessages == false)
            {
                return;
            }

            RemoveModel m = new RemoveModel();

            m.Id    = e.Model.Id;
            m.Model = e.Model;

            ShardRemoveModel.Send(m);
            UserRemoveModel.Send(m);
        }
Beispiel #3
0
        protected override void InitializeDistributedService()
        {
            base.InitializeDistributedService();
            SendMessages = true;

            ShardAddModel    = CreateShardChannel <AddModel>();
            ShardRemoveModel = CreateShardChannel <RemoveModel>();
            ShardUpdateModel = CreateShardChannel <UpdateModel>();
            ShardUpdateSet   = CreateShardChannel <UpdateSet>();

            ShardAddModel.Receive    += addModel;
            ShardRemoveModel.Receive += removeModel;
            ShardUpdateModel.Receive += updateModel;
            ShardUpdateSet.Receive   += updateSet;

            UserAddModel    = CreateUserChannel <AddModel>();
            UserRemoveModel = CreateUserChannel <RemoveModel>();
            UserUpdateModel = CreateUserChannel <UpdateModel>();
            UserUpdateSet   = CreateUserChannel <UpdateSet>();

            UserAddModel.Receive    += addModel;
            UserRemoveModel.Receive += removeModel;
            UserUpdateModel.Receive += updateModel;
            UserUpdateSet.Receive   += updateSet;

            Models = new ModelTrackerCollection <TModel>();
            Models.ModelAddedEvent   += OnModelAdded;
            Models.ModelRemovedEvent += OnModelRemoved;
            Models.ModelUpdatedEvent += OnModelUpdated;

            if (IsRouter)
            {
                RouterController.ShardController.NetUserConnected += OnShardConnected;
                RouterController.UserController.NetUserConnected  += OnUserConnected;
            }
        }