Explorar o código

删除 'zf_buffer.c'

Yun_Lib_Share hai 1 ano
pai
achega
9a80d7691b
Modificáronse 1 ficheiros con 0 adicións e 341 borrados
  1. 0 341
      zf_buffer.c

+ 0 - 341
zf_buffer.c

@@ -1,341 +0,0 @@
-/**
-  *****************************************************************************
-  * @file    zf_buffer.c
-  * @author  Zorb
-  * @version V1.0.0
-  * @date    2018-06-28
-  * @brief   环形缓冲器的实现
-  *****************************************************************************
-  * @history
-  *
-  * 1. Date:2018-06-28
-  *    Author:Zorb
-  *    Modification:建立文件
-  *
-  *****************************************************************************
-  */
-
-#include "zf_buffer.h"
-#include "zf_assert.h"
-#include "zf_malloc.h"
-#include "zf_debug.h"
-
-/******************************************************************************
- * 描述  :创建环形缓冲器(内部分配空间,size=0表示使用外部数据)
- * 参数  :(out)-ppRb  环形缓冲器结构体指针的指针
- *         (in)-size   缓冲器大小
- *         (out)-ppBuf 缓冲器空间指针的指针
- * 返回  :无
-******************************************************************************/
-bool RB_create(RingBuffer **ppRb, uint32_t size)
-{
-    RingBuffer *pRb;
-    uint8_t *pBuf;
-    
-    ZF_ASSERT(ppRb != (RingBuffer **)0)
-    
-    pRb = (RingBuffer *)ZF_MALLOC(sizeof(RingBuffer));
-    if (pRb == NULL)
-    {
-        ZF_DEBUG(LOG_E, "malloc ringbuffer space error\r\n");
-        return false;
-    }
-    
-    pRb->Head = (uint32_t)0;
-    pRb->Trail = (uint32_t)0;
-    pRb->Count = 0;
-    
-    if (size > 0)
-    {
-        pBuf = (void *)ZF_MALLOC(size);
-        if (pBuf == NULL)
-        {
-            ZF_DEBUG(LOG_E, "malloc ringbuffer buffer space error\r\n");
-            return false;
-        }
-        
-        pRb->pBuf = pBuf;
-        pRb->Size = size;
-        pRb->IsExternBuffer = false;
-    }
-    else
-    {
-        pRb->pBuf = NULL;
-        pRb->Size = 0;
-        pRb->IsExternBuffer = true;
-    }
-    
-    /* 初始化方法 */
-    pRb->IsFull = RB_isFull;
-    pRb->IsEmpty = RB_isEmpty;
-    pRb->SaveByte = RB_saveByte;
-    pRb->SaveRange = RB_saveRange;
-    pRb->GetByte = RB_getByte;
-    pRb->GetCount = RB_getCount;
-    pRb->ReadBytes = RB_readBytes;
-    pRb->DropBytes = RB_dropBytes;
-    pRb->Clear = RB_clear;
-    pRb->Dispose = RB_dispose;
-    
-    /* 输出 */
-    *ppRb = pRb;
-    
-    return true;
-}
-
-/******************************************************************************
- * 描述  :缓冲器是否已满
- * 参数  :(in)-pRb 环形缓冲器结构体指针
- * 返回  :-true    已满
- *         -false   未满
-******************************************************************************/
-bool RB_isFull(RingBuffer * const pRb)
-{
-    bool res = false;
-    
-    ZF_ASSERT(pRb != (RingBuffer *)0)
-    
-    if (pRb->Size == pRb->Count)
-    {
-        res = true;
-    }
-    
-    return res;
-}
-
-/******************************************************************************
- * 描述  :缓冲器是否空
- * 参数  :(in)-pRb 环形缓冲器结构体指针
- * 返回  :-true    空
- *         -false   未空
-******************************************************************************/
-bool RB_isEmpty(RingBuffer * const pRb)
-{
-    bool res = false;
-    
-    ZF_ASSERT(pRb != (RingBuffer *)0)
-    
-    if (pRb->Count == 0)
-    {
-        res = true;
-    }
-    
-    return res;
-}
-
-/******************************************************************************
- * 描述  :压入一个字节
- * 参数  :(in)-pRb  环形缓冲器结构体指针
- *         (in)-byte 要压入的字节
- * 返回  :-true     成功
- *         -false    失败
-******************************************************************************/
-bool RB_saveByte(RingBuffer * const pRb, uint8_t byte)
-{
-    bool res = false;
-    
-    ZF_ASSERT(pRb != (RingBuffer *)0)
-    ZF_ASSERT(pRb->pBuf != (uint8_t *)0)
-    
-    if (!RB_isFull(pRb))
-    {
-        pRb->pBuf[pRb->Trail++] = byte;
-        pRb->Trail %= pRb->Size;
-        pRb->Count++;
-        
-        res = true;
-    }
-    
-    return res;
-}
-
-/******************************************************************************
- * 描述  :压入n个字节的数据
- * 参数  :(in)-pRb    环形缓冲器结构体指针
- *         (in)-pData  要压入的数据的指针
- *         (in)-len    要压入的数据的长度
- * 返回  :压入的数量
-******************************************************************************/
-uint32_t RB_saveRange(RingBuffer * const pRb, uint8_t *pArray, uint32_t n)
-{
-    uint32_t res = 0;
-    
-    if (pArray == 0)
-    {
-        return res;
-    }
-    
-    ZF_ASSERT(pRb != (RingBuffer *)0)
-    ZF_ASSERT(pRb->pBuf != (uint8_t *)0)
-    ZF_ASSERT(pArray != (uint8_t *)0)
-    
-    uint32_t i;
-    
-    for (i = 0; i < n; i++)
-    {
-        pRb->pBuf[pRb->Trail++] = *(pArray + i);
-        pRb->Trail %= pRb->Size;
-        pRb->Count++;
-        
-        res++;
-        
-        if (pRb->Count >= pRb->Size)
-        {
-            break;
-        }
-    }
-    
-    return res;
-}
-
-/******************************************************************************
- * 描述  :取出一个字节
- * 参数  :(in)-pRb    环形缓冲器结构体指针
- *         (out)-pByte 存放取出字节的地址
- * 返回  :-true       成功
- *         -false      失败
-******************************************************************************/
-bool RB_getByte(RingBuffer * const pRb, uint8_t *pByte)
-{
-    bool res = false;
-    
-    ZF_ASSERT(pRb != (RingBuffer *)0)
-    ZF_ASSERT(pRb->pBuf != (uint8_t *)0)
-    ZF_ASSERT(pByte != (uint8_t *)0)
-    
-    if (!RB_isEmpty(pRb))
-    {
-        *pByte = pRb->pBuf[pRb->Head++];
-        pRb->Head %= pRb->Size;
-        pRb->Count--;
-        
-        res = true;
-    }
-    
-    return res;
-}
-
-/******************************************************************************
- * 描述  :读取缓冲器已使用字节个数
- * 参数  :(in)-pRb  环形缓冲器结构体指针
- * 返回  :已使用字节个数
-******************************************************************************/
-uint32_t RB_getCount(RingBuffer * const pRb)
-{
-    ZF_ASSERT(pRb != (RingBuffer *)0)
-    
-    return pRb->Count;
-}
-
-/******************************************************************************
- * 描述  :读取n个字节(n超过最大数据数时全部读出)
- * 参数  :(in)-pRb     环形缓冲器结构体指针
- *         (out)-pArray 存放取出字节的地址
- *         (in)-n       要读取的字节个数
- * 返回  :实际读取的字节个数
-******************************************************************************/
-uint32_t RB_readBytes(RingBuffer * const pRb, uint8_t *pArray, uint32_t n)
-{
-    uint32_t len;
-    uint32_t i, index;
-    
-    ZF_ASSERT(pRb != (RingBuffer *)0)
-    ZF_ASSERT(pRb->pBuf != (uint8_t *)0)
-    ZF_ASSERT(pArray != (uint8_t *)0)
-    
-    if (!RB_isEmpty(pRb))
-    {
-        len = RB_getCount(pRb);
-        
-        if (len > n)
-        {
-            len = n;
-        }
-        
-        for(i = 0; i < len; i++) 
-        {
-            index = (pRb->Head + i) % pRb->Size;
-            *(pArray + i) = pRb->pBuf[index];
-        }
-        
-        return len;
-    }
-    
-    return 0;
-}
-
-/******************************************************************************
- * 描述  :丢弃n个字节(n超过最大数据数时全部丢弃)
- * 参数  :(in)-pRb     环形缓冲器结构体指针
- *         (in)-n       要丢弃的字节个数
- * 返回  :实际丢弃的字节个数
-******************************************************************************/
-uint32_t RB_dropBytes(RingBuffer * const pRb, uint32_t n)
-{
-    uint32_t len;
-    
-    ZF_ASSERT(pRb != (RingBuffer *)0)
-    ZF_ASSERT(pRb->pBuf != (uint8_t *)0)
-    
-    if (!RB_isEmpty(pRb))
-    {
-        len = RB_getCount(pRb);
-        
-        if (len > n)
-        {
-            len = n;
-        }
-        
-        pRb->Head += len;
-        pRb->Head %= pRb->Size;
-        pRb->Count -= len;
-        
-        return len;
-    }
-    
-    return 0;
-}
-
-/******************************************************************************
- * 描述  :清空缓冲器
- * 参数  :(in)-pRb     环形缓冲器结构体指针
- * 返回  :-true        成功
- *         -false       失败
-******************************************************************************/
-bool RB_clear(RingBuffer * const pRb)
-{
-    bool res = false;
-    
-    ZF_ASSERT(pRb != (RingBuffer *)0)
-    
-    pRb->Head = (uint32_t)0;
-    pRb->Trail = (uint32_t)0;
-    pRb->Count = 0;
-    
-    res = true;
-    
-    return res;
-}
-
-/******************************************************************************
- * 描述  :释放缓冲器(不释放外部创建的缓冲区)
- * 参数  :(in)-pRb     环形缓冲器结构体指针
- * 返回  :-true     成功
- *         -false    失败
-******************************************************************************/
-bool RB_dispose(RingBuffer * const pRb)
-{
-    ZF_ASSERT(pRb != (RingBuffer *)0)
-    
-    /* 外部创建的缓冲区不释放 */
-    if (!pRb->IsExternBuffer)
-    {
-        ZF_FREE(pRb->pBuf);
-    }
-    
-    ZF_FREE(pRb);
-    
-    return true;
-}
-
-/******************************** END OF FILE ********************************/