Пример #1
0
        /// <summary> Call of GetWeaveItem(..) can be speed up by NOT reading the weave file on any call. </summary>
        /// <param name="dispatcher"></param>
        /// <param name="x"></param>
        /// <param name="y"></param>
        /// <returns></returns>
        public static TrackWeaveItem GetWeaveItem(Dispatcher.Dispatcher dispatcher, int x, int y)
        {
            var m = dispatcher.Model as ViewModels.RailwayEssentialModel;

            if (m == null)
            {
                return(null);
            }

            var prj = m.Project;

            var             weaveFilepath = Path.Combine(prj.Dirpath, prj.Track.Weave);
            TrackWeaveItems weaverItems   = new TrackWeaveItems();

            if (!weaverItems.Load(weaveFilepath))
            {
                return(null);
            }

            foreach (var e in weaverItems.Items)
            {
                if (e?.VisuX == x && e.VisuY == y)
                {
                    return(e);
                }
            }

            return(null);
        }
        public void Simple()
        {
            var unity   = new UnityContainer();
            var tracker = new Tracker();

            unity.RegisterInstance(tracker);

            var registrator = new HandlerRegistry();

            registrator.Register(Assembly.GetExecutingAssembly(), new string[] {});

            var dispatcher = new Dispatcher.Dispatcher(unity, registrator, 1);

            var message = new SimpleMessage1();

            dispatcher.Dispatch(message);

            var message2 = new SimpleMessage2();

            dispatcher.Dispatch(message2);

            Assert.AreEqual(2, tracker.Handlers.Count);
            Assert.AreEqual(typeof(SimpleMessage1), tracker.Handlers[0]);
            Assert.AreEqual(typeof(SimpleMessage2), tracker.Handlers[1]);
        }
Пример #3
0
 public static BookDataStore Get(Dispatcher.Dispatcher dispatcher)
 {
     if (instance == null)
     {
         instance = new BookDataStore(dispatcher);
     }
     return(instance);
 }
Пример #4
0
 private BookDataStore(Dispatcher.Dispatcher dispacher)
 {
     this.dispacher         = dispacher;
     Readingbook            = new ReadingBookData();
     Endbook                = new EndingBookData();
     readingBooks           = new List <ReadingBookData>();
     this.dispacher.Action += OnAction;
 }
Пример #5
0
 public static ActionCreator Get(Dispatcher.Dispatcher dispatcher)
 {
     if (instance == null)
     {
         instance = new ActionCreator(dispatcher);
     }
     return(instance);
 }
Пример #6
0
 private void MServer_ConnectionAccepted(object sender, System.Net.Sockets.Socket acceptedSocket)
 {
     Console.WriteLine("Slave Slave client connected !");
     slave               = new Client(acceptedSocket, new Logger(), true);
     mDispatcher         = new Dispatcher.Dispatcher();
     slave.DataReceived += Slave_DataReceived;
     SendMessage(new ProtocolRequired().InitProtocolRequired(1878, 1890));
     Ready(this, new EventArgs());
 }
Пример #7
0
 public BeginPageVm()
 {
     dispatcher        = new Dispatcher.Dispatcher();
     actionCreator     = ActionCreator.Get(dispatcher);
     bookDataStore     = BookDataStore.Get(dispatcher);
     AddCommand.action = () => actionCreator.Begin(BookTitle);
     EndCommand.action = () => actionCreator.End(BookTitle);
     bookDataStore.ReadingBookEventHandler += BookDataStore_ReadingBookEventHandler;
     bookDataStore.EndBookEventHandler     += BookDataStore_EndBookEventHandler;
 }
Пример #8
0
        public static TrackInformationCore.IItem GetObject(Dispatcher.Dispatcher dispatcher, Track track, int x, int y
                                                           )
        {
            var trackInfo = track.Get(x, y);

            if (trackInfo == null)
            {
                return(null);
            }

            var weaver = dispatcher.Weaver;

            if (weaver != null)
            {
                var ws = weaver.WovenSeam;
                if (ws != null)
                {
                    foreach (var seam in ws)
                    {
                        if (seam == null)
                        {
                            continue;
                        }

                        foreach (TrackInfo key in seam.TrackObjects.Keys)
                        {
                            if (key == null)
                            {
                                continue;
                            }

                            if (key.X == trackInfo.X && key.Y == trackInfo.Y && key.ThemeId == trackInfo.ThemeId)
                            {
                                return(seam.ObjectItem);
                            }
                        }
                    }
                }
            }

            return(null);
        }
        public void Simple()
        {
            var unity = new UnityContainer();
            var tracker = new Tracker();
            unity.RegisterInstance(tracker);

            var registrator = new HandlerRegistry();
            registrator.Register(Assembly.GetExecutingAssembly(), new string[] {});

            var dispatcher = new Dispatcher.Dispatcher(unity, registrator, 1);

            var message = new SimpleMessage1();
            dispatcher.Dispatch(message);

            var message2 = new SimpleMessage2();
            dispatcher.Dispatch(message2);

            Assert.AreEqual(2, tracker.Handlers.Count);
            Assert.AreEqual(typeof(SimpleMessage1), tracker.Handlers[0]);
            Assert.AreEqual(typeof(SimpleMessage2), tracker.Handlers[1]);
        }
 public DispatcherController(ILogger <ChannelController> logger, Dispatcher.Dispatcher dispatcher)
 {
     _logger     = logger;
     _dispatcher = dispatcher;
 }
Пример #11
0
        public IScheduler CreateScheduler()
        {
            Func <DateTime> now = () => DateTime.Now;

            var eventStream                = new EventStream(_eventSinks, _exceptionLogger, now);
            var recoverableAction          = new RecoverableAction(this, eventStream);
            var delegatingPersistenceStore = new DelegatingPersistenceStore(_persistenceProvider);
            var jobMutation                = new JobMutator(eventStream, delegatingPersistenceStore);

            var queueConfiguration = new JobQueueFactory(
                delegatingPersistenceStore, this, eventStream, recoverableAction, jobMutation).Create();

            var router       = new JobRouter(queueConfiguration);
            var methodBinder = new MethodBinder();

            var continuationDispatcher = new ContinuationDispatcher(router, jobMutation,
                                                                    delegatingPersistenceStore, recoverableAction);
            var activityToContinuationConverter = new ActivityToContinuationConverter(now);

            var runningTransition = new RunningTransition(jobMutation);
            var failedTransition  = new FailedTransition(this, jobMutation, now);
            var endTransition     = new EndTransition(delegatingPersistenceStore, jobMutation,
                                                      continuationDispatcher);

            var continuationLiveness = new ContinuationLiveness(delegatingPersistenceStore, continuationDispatcher);

            var coordinator = new JobCoordinator(eventStream, recoverableAction);

            var waitingForChildrenTransition = new WaitingForChildrenTransition(
                delegatingPersistenceStore,
                continuationDispatcher,
                activityToContinuationConverter,
                recoverableAction,
                jobMutation);

            var changeState = new StatusChanger(eventStream, runningTransition, failedTransition,
                                                endTransition, waitingForChildrenTransition, jobMutation);

            var failedJobQueue = new FailedJobQueue(this, delegatingPersistenceStore, now, eventStream, router);

            var errorHandlingPolicy = new ErrorHandlingPolicy(this, coordinator, changeState,
                                                              failedJobQueue, recoverableAction);

            var exceptionFilterDispatcher = new ExceptionFilterDispatcher(eventStream);

            var jobDispatcher = new Dispatcher.Dispatcher(_dependencyResolver,
                                                          coordinator,
                                                          errorHandlingPolicy,
                                                          methodBinder,
                                                          eventStream,
                                                          recoverableAction,
                                                          changeState,
                                                          continuationLiveness,
                                                          exceptionFilterDispatcher);

            var jobPumps =
                queueConfiguration
                .ActivitySpecificQueues
                .Values
                .Select(q => new JobPump(jobDispatcher, eventStream, q))
                .ToList();

            jobPumps.Add(new JobPump(jobDispatcher, eventStream, queueConfiguration.Default));

            return(new Scheduler(
                       queueConfiguration,
                       this,
                       delegatingPersistenceStore,
                       now,
                       failedJobQueue,
                       recoverableAction,
                       router,
                       activityToContinuationConverter,
                       jobPumps,
                       jobMutation));
        }
Пример #12
0
 public ActionCreator(Dispatcher.Dispatcher dispatcher)
 {
     this.dispatcher = dispatcher;
 }