#include "HW4-Todo-QueueArray.hpp"
#include <iostream>

using namespace std;

TodoQueueArray::TodoQueueArray(){
    queueFront = -1;
    queueEnd = -1;
}

TodoQueueArray::~TodoQueueArray()
{}

bool TodoQueueArray::isEmpty(){
    return queueFront == -1;
}

bool TodoQueueArray::isFull(){
    return queueFront == MAX_QUEUE_SIZE-1;
}

void TodoQueueArray::enqueue(string todoItem){
    TodoItem *temp = new TodoItem;
    temp->todo = todoItem;
    if(isFull()){
        cout << "Queue full, cannot add new todo item." << endl;
    }
    else{
        queue[++queueFront] = *temp;
        if(queueEnd == -1)
                queueEnd = 0;
    }
}

void TodoQueueArray::dequeue(){
    if(isEmpty()){
        cout << "Queue empty, cannot dequeue an item." << endl;
    }
    else if(queueEnd == queueFront){
        queueFront = queueEnd = -1;
    }
    else{
        queueFront++;
    }
}

TodoItem TodoQueueArray::peek(){
    if(isEmpty()){
        cout << "Queue empty, cannot peek." << endl;
    }
    return queue[queueFront];
}
