Exemple #1
0
        /// <summary>
        /// Removes Message handler
        /// </summary>
        public void RemoveMessageHandler(IServerMessageHandler handler)
        {
            List <IServerMessageHandler> list = _messageHandlers.ToList();

            list.Remove(handler);
            _messageHandlers = list.ToArray();
        }
Exemple #2
0
        /// <summary>
        /// Adds Message handler
        /// </summary>
        public void AddMessageHandler(IServerMessageHandler handler)
        {
            List <IServerMessageHandler> list = _messageHandlers.ToList();

            list.Add(handler);
            _messageHandlers = list.ToArray();
        }
Exemple #3
0
 public NettyServerBootstrap(IServerMessageHandler <TMessage> handler, IMessageCodecs <TMessage> msgCodecs, ILoggerFactory factory, IContextAccessor <TMessage> contextAccessor)
 {
     this._msgCodecs       = msgCodecs;
     this._handler         = handler;
     this._contextAccessor = contextAccessor;
     this.Logger           = factory.CreateLogger(this.GetType());
     this._factory         = factory;
 }
Exemple #4
0
 public AmpRpcService(
     IServerMessageHandler <AmpMessage> messageHandler,
     ILogger <AmpRpcService> logger
     )
 {
     this._messageHandler = messageHandler;
     this._logger         = logger;
 }
Exemple #5
0
 public NettyServerBootstrap(IServerMessageHandler <TMessage> handler, IMessageCodecs <TMessage> msgCodecs, ILoggerFactory factory) : this(handler, msgCodecs, factory, null)
 {
 }
Exemple #6
0
        /// <summary>
        /// Adds default delivery handler implementation to builder
        /// </summary>
        public void AddServerMessageHandler <T>(params object[] ctorArgs) where T : class, IServerMessageHandler, new()
        {
            IServerMessageHandler handler = Activator.CreateInstance(typeof(T), ctorArgs) as IServerMessageHandler;

            _serverMessageHandler = handler;
        }
Exemple #7
0
 /// <summary>
 /// Adds default delivery handler implementation to builder
 /// </summary>
 public void AddServerMessageHandler <T>() where T : class, IServerMessageHandler, new()
 {
     _serverMessageHandler = new T();
 }
Exemple #8
0
 /// <summary>
 /// Adds default delivery handler implementation to builder
 /// </summary>
 public void AddServerMessageHandler(IServerMessageHandler handler)
 {
     _serverMessageHandler = handler;
 }
Exemple #9
0
        private ServiceTypeProvider()
        {
            var modelFactories = new IModelFactory[]
            {
                new SessionTimeFactory(),
                new MageKnightFactory(),
                new UserFactory(),
                new UserCollectionFactory(),
                new GameFactory(),
                new GamesFactory(),
                new DialFactory(),
                new StatFactory(),
                new ClickFactory(),
            };

            this.modelFactoryResolver = new ModelFactoryResolver(modelFactories);
            this.defaultModel         = new DefaultModel.DefaultModel(this.modelFactoryResolver);

            IEnumerable <IQueryFactory> queryFactories;

            queryFactories = new IQueryFactory[]
            {
                new SessionTimeQueryFactory(this.modelFactoryResolver, this.defaultModel),
                new MageKnightQueryFactory(this.modelFactoryResolver, this.defaultModel),
                new UserQueryFactory(this.modelFactoryResolver, this.defaultModel),
                new UserCollectionQueryFactory(this.modelFactoryResolver, this.defaultModel),
                new GameQueryFactory(this.modelFactoryResolver, this.defaultModel),
                new GamesQueryFactory(this.modelFactoryResolver, this.defaultModel),
                new DialQueryFactory(this.modelFactoryResolver, this.defaultModel),
                new ClickQueryFactory(this.modelFactoryResolver, this.defaultModel),
                new StatQueryFactory(this.modelFactoryResolver, this.defaultModel),
            };

            this.queryFactoryResolver = new QueryFactoryResolver(queryFactories);

            var modelUpdaters = new IModelUpdater[]
            {
                new SessionTimeChangedUpdater(this.modelFactoryResolver, this.defaultModel),
                new MageKnightChangedUpdater(this.modelFactoryResolver, this.defaultModel),
                new UserChangedUpdater(this.modelFactoryResolver, this.defaultModel),
                new UserCollectionAddedUpdater(this.modelFactoryResolver, this.defaultModel),
                new UserInventoryAddUpdater(this.modelFactoryResolver, this.defaultModel),
                new UserArmyAddUpdater(this.modelFactoryResolver, this.defaultModel),
                new UserAddedMageToArmyUpdater(this.modelFactoryResolver, this.defaultModel),
                new GameChangedModelUpdater(this.modelFactoryResolver, this.defaultModel),
                new GamesChangedModelUpdater(this.modelFactoryResolver, this.defaultModel),
                new UserSignUpUpdater(this.modelFactoryResolver, this.defaultModel),
                new UserBoosterPackCountChangedUpdater(this.modelFactoryResolver, this.defaultModel),
                new UserSignInUpdater(this.modelFactoryResolver, this.defaultModel),
                new UserIsSignedInChangedUpdater(this.modelFactoryResolver, this.defaultModel),
                new GameJoinedUpdater(this.modelFactoryResolver, this.defaultModel),
                new MageKnightCoordinatesChangedUpdater(this.modelFactoryResolver, this.defaultModel),
                new UserSelectedMageChangedUpdater(this.modelFactoryResolver, this.defaultModel),
                new UserAddedMageToInventoryUpdater(this.modelFactoryResolver, this.defaultModel),
            };

            this.modelUpdaterResolver = new ModelUpdaterResolver(modelUpdaters);

            var serverMessageHandlers = new IServerMessageHandler[]
            {
                new SessionTimeChangedHandler(this.modelUpdaterResolver),
                new MageKnightChangedHandler(this.modelUpdaterResolver),
                new UserChangedHandler(this.modelUpdaterResolver),
                new UserCollectionAddedHandler(this.modelUpdaterResolver),
                new UserInventoryAddHandler(this.modelUpdaterResolver),
                new UserAddedMageToArmyHandler(this.modelUpdaterResolver),
                new UserArmyAddHandler(this.modelUpdaterResolver),
                new GameChangedHandler(this.modelUpdaterResolver),
                new GamesChangedHandler(this.modelUpdaterResolver),
                new UserSignUpHandler(this.modelUpdaterResolver),
                new UserBoosterPackCountChangedHandler(this.modelUpdaterResolver),
                new UserSignInHandler(this.modelUpdaterResolver),
                new UserIsSignedInChangedHandler(this.modelUpdaterResolver),
                new GameJoinedHandler(this.modelUpdaterResolver),
                new MageKnightCoordinatesChangedHandler(this.modelUpdaterResolver),
                new UserSelectedMageChangedHandler(this.modelUpdaterResolver),
                new UserAddedMageToInventoryHandler(this.modelUpdaterResolver),
            };

            var serverMessageHandlerResolver = new ServerMessageHandlerResolver(serverMessageHandlers);

            this.QueryHandlerCollectionFactory = new QueryHandlerCollectionFactory(
                this.queryFactoryResolver,
                serverMessageHandlerResolver);

            this.serviceClient = new Lazy <IServiceClient>(
                this.CreateServiceClient,
                LazyThreadSafetyMode.ExecutionAndPublication);

            this.sessionTimeProxyFactory = new Lazy <ISessionTimeProxyFactory>(
                this.CreateSessionTimeProxyFactory,
                LazyThreadSafetyMode.ExecutionAndPublication);

            this.sessionTime = new Lazy <ISessionTime>(
                this.CreateSessionTime,
                LazyThreadSafetyMode.ExecutionAndPublication);

            this.mageKnightProxyFactory = new Lazy <IMageKnightModelProxyFactory>(
                this.CreateMageKnightProxyFactory,
                LazyThreadSafetyMode.ExecutionAndPublication);

            this.mageKnight = new Lazy <IMageKnightModel>(
                this.CreateMageKnight,
                LazyThreadSafetyMode.ExecutionAndPublication);

            this.userProxyFactory = new Lazy <IUserModelProxyFactory>(
                this.CreateUserProxyFactory,
                LazyThreadSafetyMode.ExecutionAndPublication);

            this.user = new Lazy <IUserModel>(
                this.CreateUser,
                LazyThreadSafetyMode.ExecutionAndPublication);

            this.userCollectionProxyFactory = new Lazy <IUserCollectionProxyFactory>(
                this.CreateUserCollectionProxyFactory,
                LazyThreadSafetyMode.ExecutionAndPublication);

            this.userCollection = new Lazy <IUserCollection>(
                this.CreateUserCollection,
                LazyThreadSafetyMode.ExecutionAndPublication);

            this.gameProxyFactory = new Lazy <IGameModelProxyFactory>(
                this.CreateGameProxyFactory,
                LazyThreadSafetyMode.ExecutionAndPublication);

            this.game = new Lazy <IGameModel>(
                this.CreateGame,
                LazyThreadSafetyMode.ExecutionAndPublication);

            this.gamesProxyFactory = new Lazy <IGamesModelProxyFactory>(
                this.CreateGamesProxyFactory,
                LazyThreadSafetyMode.ExecutionAndPublication);

            this.games = new Lazy <IGameModels>(
                this.CreateGames,
                LazyThreadSafetyMode.ExecutionAndPublication);
        }
Exemple #10
0
 /// <summary>
 /// Uses a custom server message handler
 /// </summary>
 public static HorseMqBuilder AddServerMessageHandler(this HorseMqBuilder builder, IServerMessageHandler messageHandler)
 {
     builder.Server.AddMessageHandler(messageHandler);
     return(builder);
 }
Exemple #11
0
 public static HorseMqBuilder UseServerMessageHandler(this HorseMqBuilder builder, IServerMessageHandler messageHandler)
 {
     return(AddServerMessageHandler(builder, messageHandler));
 }