Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
MsgQueue.cpp
00001 /** 00002 * @file MsgQueue.cpp 00003 * @brief Ble message queue 00004 * Copyright 2015 SEVENCORE Co., Ltd. 00005 * 00006 * @author HyeongJun Kim 00007 * @version 1.0.0 00008 * @date 2015-08-19 00009 */ 00010 #include "MsgQueue.h" 00011 #include "mbed.h" 00012 /** 00013 **************************************************************************************** 00014 * @addtogroup ext_fota module 00015 * @brief Ble message Queue Class Method Definition. 00016 * 00017 * @{ 00018 **************************************************************************************** 00019 */ 00020 namespace sevencore_fota{ 00021 /** 00022 **************************************************************************************** 00023 * @brief Ble Message Queue Constructor. 00024 * @param[in] Message Queue Size. 00025 * @detail Default size is 512 00026 **************************************************************************************** 00027 */ 00028 MsgQueue::MsgQueue(int MaxSize):MaxNum(MaxSize) 00029 { 00030 Front = NULL; 00031 Rear = NULL; 00032 ElemCnt = 0; 00033 } 00034 /** 00035 **************************************************************************************** 00036 * @brief Ble Message Queue Destructor. 00037 **************************************************************************************** 00038 */ 00039 MsgQueue::~MsgQueue(void) 00040 { 00041 } 00042 /** 00043 **************************************************************************************** 00044 * @brief Add message in queue. 00045 * @param[in] Ble message void pointer. 00046 **************************************************************************************** 00047 */ 00048 void MsgQueue::EnQueue(void *vData) 00049 { 00050 Element *tmp = new Element; 00051 tmp->Data = vData; 00052 tmp->Next = NULL; 00053 ElemCnt++; 00054 if( Front == NULL) 00055 { 00056 Front = tmp; 00057 Rear = tmp; 00058 }else 00059 { 00060 Rear->Next = tmp; 00061 Rear = tmp; 00062 } 00063 } 00064 /** 00065 **************************************************************************************** 00066 * @brief Remove message in queue. 00067 * @return void pointer(*void) 00068 **************************************************************************************** 00069 */ 00070 void *MsgQueue::DeQueue(void) 00071 { 00072 void *tmp; 00073 Element *tmpElem; 00074 00075 if(Front == NULL) 00076 return NULL; 00077 00078 ElemCnt--; 00079 tmpElem = Front; 00080 Front = tmpElem->Next; 00081 tmp = tmpElem->Data; 00082 free(tmpElem); 00083 00084 return tmp; 00085 } 00086 /** 00087 **************************************************************************************** 00088 * @brief Return queue element count. 00089 * @return Integer element count. 00090 **************************************************************************************** 00091 */ 00092 int MsgQueue::GetElementCount(void) 00093 { 00094 return ElemCnt; 00095 } 00096 /** 00097 **************************************************************************************** 00098 * @brief Boolean that queue is empty. 00099 * @return Boolean. 00100 **************************************************************************************** 00101 */ 00102 bool MsgQueue::IsEmpty(void) 00103 { 00104 if( Front == NULL) 00105 return false; 00106 else 00107 return true; 00108 } 00109 00110 }//namespace 00111 /// @} ext_fota module
Generated on Tue Jul 12 2022 21:40:44 by
 1.7.2
 1.7.2