Skip to content
Snippets Groups Projects
buffer.c 768 B
Newer Older
#include <buffer.h>
#include <types.h>

void BufferInit(Buffer* B) {
    B->Num = 0;
}

Pair* MakePair(int TaskID, char* Msg) {
    Pair* P;
    P->TaskID = TaskID;
    P->Msg = Msg;
    P->Next = NULL;
    return P;
}

void PushToBuffer(Buffer* B, int TaskID, char* Msg) {
    Pair* New = MakePair(TaskID, Msg);
    if (B) {
        if (B->Head == NULL) {
            B->Head = New;
            B->Tail = New;
        }
        else {
            New->Next = B->Head;
            B->Head = New;
        }
        B->Num += 1;
    }
}

Pair* FrontBuffer(Buffer* B) {
    if (B && B->Head) return B->Head;
    return FAILURE;
}

int PopFrontBuffer(Buffer* B) {
    if (B && B->Head) {
        B->Head = B->Head->Next; 
        B->Num -= 1;
    } else return FAILURE;
}