www.pudn.com > Elevators.rar > Monitor.h


//## begin module%1.3%.codegen_version preserve=yes 
//   Read the documentation to learn more about C++ code generator 
//   versioning. 
//## end module%1.3%.codegen_version 
 
//## begin module%3C12C4F1005A.cm preserve=no 
//	  %X% %Q% %Z% %W% 
//## end module%3C12C4F1005A.cm 
 
//## begin module%3C12C4F1005A.cp preserve=no 
//## end module%3C12C4F1005A.cp 
 
//## Module: Monitor%3C12C4F1005A; Package specification 
//## Subsystem:  
//## Source file: D:\Program\OOP\Elevators\SourceCode\Monitor.h 
 
#ifndef Monitor_h 
#define Monitor_h 1 
 
//## begin module%3C12C4F1005A.additionalIncludes preserve=no 
//## end module%3C12C4F1005A.additionalIncludes 
 
//## begin module%3C12C4F1005A.includes preserve=yes 
//## end module%3C12C4F1005A.includes 
 
// Elevator 
#include "Elevator.h" 
// Floor 
#include "Floor.h" 
//## begin module%3C12C4F1005A.declarations preserve=no 
//## end module%3C12C4F1005A.declarations 
 
//## begin module%3C12C4F1005A.additionalDeclarations preserve=yes 
//## end module%3C12C4F1005A.additionalDeclarations 
 
 
//## begin CMonitor%3C12154C029E.preface preserve=yes 
//## end CMonitor%3C12154C029E.preface 
 
//## Class: CMonitor%3C12154C029E 
//	电梯仿真系统的调度类: 
//	    主要负责电梯的调度和楼层的监测. 
//## Category:  
//## Persistence: Transient 
//## Cardinality/Multiplicity: n 
 
class CMonitor  
{ 
  //## begin CMonitor%3C12154C029E.initialDeclarations preserve=yes 
  //## end CMonitor%3C12154C029E.initialDeclarations 
 
  public: 
    //## Constructors (generated) 
      CMonitor(); 
 
      CMonitor(const CMonitor &right); 
 
    //## Destructor (generated) 
      ~CMonitor(); 
 
    //## Assignment Operation (generated) 
      CMonitor & operator=(const CMonitor &right); 
 
    //## Equality Operations (generated) 
      int operator==(const CMonitor &right) const; 
 
      int operator!=(const CMonitor &right) const; 
 
 
    //## Other Operations (specified) 
      //## Operation: SelectElevator%3C131ECA023A 
      //	系统为乘客选择一台电梯. 
      int SelectElevator (CMessage* msg); 
 
      //## Operation: ConstructMsg%3C1320E3038E 
      //	系统生成一个消息 
 
      //## Operation: DispatchMsg%3C13214B00AA 
      bool DispatchMsg (CMessage* msg); 
 
    //## Get and Set Operations for Associations (generated) 
 
      //## Association: 楼层部分%3C12BF6E006E 
      //## Role: CMonitor::m_pFloors%3C12BF6E0262 
      //	该调度系统中的国际贸易中心共有40层楼. 
      //	采用数组的方式,应为这个事实在段时间不会变动,具 
      //	有较好的稳定性,所以可以简化为数组. 
      const CFloor * get_m_pFloors (int index) const; 
      void set_m_pFloors (int index, CFloor * value); 
 
      //## Association: 电梯部分%3C12BF7200E6 
      //## Role: CMonitor::m_pElevators%3C12BF720348 
      //	该电梯调度系统中包含十部电梯. 
      //	这是比较稳定的事实,所以可以用数组的形式 
      const CElevator * get_m_pElevators (int index) const; 
      void set_m_pElevators (int index, CElevator * value); 
 
    // Additional Public Declarations 
      //## begin CMonitor%3C12154C029E.public preserve=yes 
	  CMonitor(int k,int n,int m,int l,int s,int t); 
	  CFloor* GetFloor(int index); 
	  CElevator* GetElevator(int index); 
	  CPassengerList * GetPsgList(); 
      //## end CMonitor%3C12154C029E.public 
  protected: 
    // Additional Protected Declarations 
      //## begin CMonitor%3C12154C029E.protected preserve=yes 
      //## end CMonitor%3C12154C029E.protected 
 
  private: 
    // Additional Private Declarations 
      //## begin CMonitor%3C12154C029E.private preserve=yes 
      //## end CMonitor%3C12154C029E.private 
 
  private: //## implementation 
	  int m_iCount; 
    // Data Members for Associations 
 
      //## Association: 楼层部分%3C12BF6E006E 
      //## begin CMonitor::m_pFloors%3C12BF6E0262.role preserve=no  public: CFloor {1 -> 40RHgN} 
      CFloor *m_pFloors[40]; 
      //## end CMonitor::m_pFloors%3C12BF6E0262.role 
 
      //## Association: 电梯部分%3C12BF7200E6 
      //## begin CMonitor::m_pElevators%3C12BF720348.role preserve=no  public: CElevator {1 -> 10RHgN} 
      CElevator *m_pElevators[10]; 
      //## end CMonitor::m_pElevators%3C12BF720348.role 
 
    // Additional Implementation Declarations 
      //## begin CMonitor%3C12154C029E.implementation preserve=yes 
  public: 
	  CMessage* InquirePassenger(CPassenger* ppas); 
	  CPassengerList* m_pltPassengers; 
	  int m_K; 
	  int m_N; 
	  int m_M; 
	  int m_L; 
	  int m_S; 
	  int m_T; 
	  bool m_bFinished; 
      //## end CMonitor%3C12154C029E.implementation 
}; 
 
//## begin CMonitor%3C12154C029E.postscript preserve=yes 
//## end CMonitor%3C12154C029E.postscript 
 
// Class CMonitor  
 
//## Get and Set Operations for Associations (inline) 
 
inline const CFloor * CMonitor::get_m_pFloors (int index) const 
{ 
  //## begin CMonitor::get_m_pFloors%3C12BF6E0262.get preserve=no 
  return m_pFloors[index]; 
  //## end CMonitor::get_m_pFloors%3C12BF6E0262.get 
} 
 
inline void CMonitor::set_m_pFloors (int index, CFloor * value) 
{ 
  //## begin CMonitor::set_m_pFloors%3C12BF6E0262.set preserve=no 
  m_pFloors[index] = value; 
  //## end CMonitor::set_m_pFloors%3C12BF6E0262.set 
} 
 
inline const CElevator * CMonitor::get_m_pElevators (int index) const 
{ 
  //## begin CMonitor::get_m_pElevators%3C12BF720348.get preserve=no 
  return m_pElevators[index]; 
  //## end CMonitor::get_m_pElevators%3C12BF720348.get 
} 
 
inline void CMonitor::set_m_pElevators (int index, CElevator * value) 
{ 
  //## begin CMonitor::set_m_pElevators%3C12BF720348.set preserve=no 
  m_pElevators[index] = value; 
  //## end CMonitor::set_m_pElevators%3C12BF720348.set 
} 
 
//## begin module%3C12C4F1005A.epilog preserve=yes 
//## end module%3C12C4F1005A.epilog 
 
 
#endif