00001 #ifndef RING_INCLUDED 00002 #define RING_INCLUDED 00003 00004 #include "CustomerRequest.h" 00005 00006 class Ring { // Einzelner Ring 00007 int no; // Laufende Ringnummer im Auftrag 00008 class CustomerRequest* myRequest; // Auftragsbezug 00009 SIMTIME readyAt; 00010 00011 public: 00012 Ring(CustomerRequest* request, int number, SIMTIME now) 00013 : no(number), myRequest(request), readyAt(now) {} 00014 ~Ring(){std::cout<<"~Ring()\n";} 00015 00016 int getNumber() const {return no;} 00017 SIMTIME getReadyTime() const { return readyAt; } 00018 CustomerRequest* getRequest() const {return myRequest;} 00019 00020 // Auftragsdaten 00021 double getDiameter() const {return myRequest->diameter;} 00022 double getHeight() const {return myRequest->height;} 00023 double getMass() const {return myRequest->mass;} 00024 class Treatment* getTreatment() const {return myRequest->getTreatment();} 00025 00026 const std::string& getMaterial() const {return myRequest->material;} 00027 00028 // Vergleiche 00029 bool isCompatibleTo(Ring* r) { 00030 const CustomerRequest* otherRequest = r->getRequest(); 00031 00032 return myRequest->isCompatibleTo(otherRequest); 00033 } 00034 00035 bool canStackOn(Ring* r) { 00036 return (isCompatibleTo(r)); 00037 } 00038 00039 void finished() { 00040 myRequest->ringFinished(); 00041 } 00042 }; 00043 00044 #endif