//----------------------------------------------------------------------
//  SPECIFICATION FILE (processq.h)
//----------------------------------------------------------------------
#ifndef PROCESSQ_H
#define PROCESSQ_H

#include "bool.h"
#include "process.h"
#include "debug.h"

struct PNodeType;
typedef PNodeType *PNodePtr;

struct PNodeType
{
	Process   *process;
	PNodePtr  link;
};

class ProcessQ {
private:
    int Count;
    PNodeType *Front;
    PNodeType *Rear;

public:
    ProcessQ();           // Constructor

    ~ProcessQ();          //destructor
    
    Boolean IsEmpty();

    int getCount();

    void Enqueue( Process * );

    Process *Dequeue();

    int PeekFrontPID();

    void Display();
};
#endif

