public Boolean Contract_CallBack(POrder order) { Trace.Assert(_data.LiveOrder == order); if (IsOrderContracted(order) && _data.CurEDoorOrderState == EDoorEachMonitorEnterData.EDoorOrderState.ActiveWithoutSweeper) { // sweeper 생성하고 sweeper에게 나머지 모든일을 맡긴다. // 본인은 MonitorState로 간다. // centerData를 이렇게 가지고 오는 것이 좋지는 않지만 별수 없다. // sweeper를 생성해서 sweeper controller에 넣어준다. EDoorEachSweeperController sweeper = new EDoorEachSweeperController( order, Parent.Parent.GetCenterData()); // sweeper 등록 Parent.Parent.GetSweeperController().Add(sweeper); _data.ClearLiveOrder(); _monitorEnter = new MonitorState(this); } return true; }
public EDoorEachMonitorEnterController( EDoorMonitorEnterController parent, KospiOptionInfo koi_0, KospiOptionInfo koi_1, KospiOptionInfo koi_2, KospiOptionInfo koi_3, KospiOptionInfo koi_4, ElwInfo ei) { this.Parent = parent; this._data = new EDoorEachMonitorEnterData(this, koi_0, koi_1, koi_2, koi_3, koi_4, ei); this._monitorEnter = new MonitorState(this); }
public void Run(EDoorCenterData centerData) { Trace.Assert(centerData.GetAvailableChannelCount() > 0); _monitorEnter = _monitorEnter.Run(centerData, _data); }