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:
1:5cf3a6c969be
Parent:
0:a1f6b1ba8a1e
Child:
8:9eec2c246a85

File content as of revision 1:5cf3a6c969be:

#include "MsgQueue.h"
#include "mbed.h"

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

MsgQueue::~MsgQueue(void)
{
}

void MsgQueue::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 *MsgQueue::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 MsgQueue::GetElementCount(void)
{
    return ElemCnt;
}

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

}//namespace