Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members

Ring.h

Go to the documentation of this file.
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

Generated on Tue Apr 26 14:42:42 2005 for rollingmill by doxygen 1.3.6