// Job.h     Dave Reed      2/5/05
//////////////////////////////////////////////

#ifndef _JOB_
#define _JOB_

#include <string>
#include <queue>
using namespace std;

enum JobStatus {OK, IO, DONE};

class Job                           
{                                   
  public:
    Job(int id = -1, int arrival = -1, const string & bursts = "");   // CONSTRUCTOR

    void read(istream & istr);
    int getID() const;              // RETURNS THE ID NUMBER OF THE JOB
    int getArrival() const;         // RETURNS THE ARRIVAL TIME OF THE JOB
    int getRemainingBurst() const;  // RETURNS THE LENGTH OF THE JOB
    JobStatus execute();            // EXECUTES THE JOB, RETURNS STATUS (OK, IO OR DONE)

  private:
    int jobID;                      
    int jobArrivalTime;
    queue<int> jobBursts;
};

#endif
