コード例 #1
0
 public Pub(UIUpdater uiUpdater)
 {
     this.uiUpdater = uiUpdater;
     bouncer        = new Bouncer(uiUpdater, allPatrons, PatronProcess);
     bartender      = new Bartender(uiUpdater, glassesInShelf, queueToBar, allPatrons);
     waiter         = new Waiter(uiUpdater, glassesInShelf, glassesOnTables, allPatrons);
 }
コード例 #2
0
        public Bar(MainWindow mainWindow)
        {
            this.mainWindow = mainWindow;
            shelf           = new ConcurrentStack <BeerGlass>();
            table           = new ConcurrentStack <BeerGlass>();
            chair           = new ConcurrentStack <Chair>();
            guest           = new ConcurrentQueue <Patron>();
            glasses         = new ConcurrentStack <BeerGlass>();
            patronList      = new List <Patron>();
            var bouncer   = new Bouncer(this);
            var waitress  = new Waitress(this);
            var bartender = new Bartender(this);


            for (int i = 0; i < MaxNumOfGlasses; i++)
            {
                shelf.Push(new BeerGlass());
            }
            for (int i = 0; i < MaxNumOfChairs; i++)
            {
                chair.Push(new Chair());
            }

            BarInfo();
        }
コード例 #3
0
 public SimulationManager(SimulationState stateToRun, double simulationSpeed)
 {
     timer         = new DispatcherTimer();
     establishment = GetEstablishment(stateToRun, simulationSpeed);
     window        = (MainWindow)App.Current.MainWindow;
     bouncer       = new Bouncer(establishment);
     bartender     = new Bartender(establishment);
     waitress      = new Waitress(establishment);
     logManager    = new LogManager(window, this);
 }
コード例 #4
0
 public Bar(BarController barController)
 {
     BarController   = barController;
     currentBarState = BarState.Open;
     GenerateGlasses();
     GenerateChairs();
     Bartender = new Bartender(this);
     Bouncer   = new Bouncer(this);
     Waitress  = new Waitress(this);
 }
コード例 #5
0
ファイル: Pub.cs プロジェクト: gissavem/Lab6-BarSimulator
 public void SetEmployees(BlockingCollection <Agent> employees)
 {
     this.employees = employees;
     foreach (Agent employee in employees)
     {
         if (employee is Bouncer)
         {
             bouncer = (Bouncer)employee;
         }
     }
 }
コード例 #6
0
ファイル: Agent.cs プロジェクト: AndreasZach/Lab-6
        protected void ActionDelay(double secondsDelay, Bouncer bouncer = null)
        {
            double ActionTimeDelay = Time.GetCountdown() - secondsDelay;

            while (Time.GetCountdown() > ActionTimeDelay)
            {
                if (bouncer != null && PubClosing)
                {
                    return;
                }
                Thread.Sleep(100);
            }
        }
コード例 #7
0
 void InitLogManager(MainWindow view, SimulationManager simulationManager)
 {
     startTime                         = DateTime.UtcNow;
     LogManager.view                   = view;
     bouncer                           = simulationManager.GetBouncer();
     waitress                          = simulationManager.GetWaitress();
     bartender                         = simulationManager.GetBartender();
     waitressLogMessages               = new List <string>();
     bartenderLogMessages              = new List <string>();
     patronLogMessages                 = new List <string>();
     view.WaitressListbox.ItemsSource  = waitressLogMessages;
     view.BartenderListbox.ItemsSource = bartenderLogMessages;
     view.PatronsListbox.ItemsSource   = patronLogMessages;
     SubscribeToEvents();
 }
コード例 #8
0
 public void StartAgents()
 {
     Bartender.Run(this);
     Bouncer.Run(this);
     Waitress.Run(this);
 }