BLE fota Lamp Demo

Dependencies:   mbed-rtos mbed mbed_fota_fan_control

Fork of mbed_fota_fan_control by KIM HyoengJun

ext_fota/MsgQueue.cpp

Committer:
dudnwjs
Date:
2015-06-22
Revision:
0:a1f6b1ba8a1e
Child:
1:5cf3a6c969be

File content as of revision 0:a1f6b1ba8a1e:

#include "msg_queue.h"
#include "mbed.h"

namespace sevencore_fota{
    
Msg_Queue::Msg_Queue(int MaxSize):MaxNum(MaxSize)
{
    Front = NULL;
    Rear = NULL;
    ElemCnt = 0;
}

Msg_Queue::~Msg_Queue(void)
{
}

void Msg_Queue::EnQueue(void *vData)
{
    Element *tmp = new Element;
    tmp->Data = vData;
    tmp->Next = NULL;
    ElemCnt++;
    if( Front == NULL)
    {
        Front = tmp;
        Rear = tmp;
    }else
    {
        Rear->Next = tmp;
        Rear = tmp;
    }    
}

void *Msg_Queue::DeQueue(void)
{
    void *tmp;
    Element *tmpElem;
    
    if(Front == NULL)
        return NULL;
    
    ElemCnt--;
    tmpElem = Front;
    Front = tmpElem->Next;
    tmp = tmpElem->Data;
    free(tmpElem);
    
    return tmp;
}   

int Msg_Queue::GetElementCount(void)
{
    return ElemCnt;
}

bool Msg_Queue::IsEmpty(void)
{
    if( Front == NULL)
        return false;
    else
        return true;
}

}//namespace