コード例 #1
0
ファイル: Lift.cs プロジェクト: JoinPatterns/ScalableJoins
 private void howLong(FloorNum floor, Dir dir, Buffer<WaitTime> b)
 {
     Time t = WaitTime(dir, floor, Now, Stops);
       Reservation reservation = new Reservation();
       b.Put(new WaitTime(t, reservation));
       if (reservation.Get()) {
     Stops = Insert(dir, floor, Now, Stops);
       }
 }
コード例 #2
0
ファイル: Lift.cs プロジェクト: JoinPatterns/ScalableJoins
 private void arrived(Floor floor, Buffer<Action> b)
 {
     Now = floor.mNum;
       if (Stops.Null()) {
     b.Put(Action.Wait);
     return;
       }
       if (Stops.Hd() == Now) {
     Stops = Stops.Tl();
     b.Put(Action.Stop);
     foreach (Person p in mPeople) { p.Stopped(floor); };
     return;
       }
       if (Stops.Hd() > Now) {
     b.Put(Action.Up);
     return;
       }
       if (Stops.Hd() < Now) {
     b.Put(Action.Down);
     return;
       }
 }