117 lines
2.6 KiB
C
117 lines
2.6 KiB
C
#ifndef _BUFFER_H_
|
||
#define _BUFFER_H_
|
||
|
||
#include <StdBool.h>
|
||
|
||
/***********************************宏开关**********************************/
|
||
#define OPENLOCK 1
|
||
|
||
#define BUFFER_MALLOC malloc
|
||
|
||
|
||
/************************************类型定义********************************/
|
||
/*buffer句柄*/
|
||
typedef void* BufferHandle;
|
||
|
||
/*回调函数类型*/
|
||
typedef void(*BufferFuc)(BufferHandle);
|
||
|
||
/*回调函数类型*/
|
||
typedef void(*BufferActFuc)();
|
||
|
||
/**************************************函数**************************************/
|
||
|
||
/*返回值:NULL失败,其他成功
|
||
* 函数作用:创建一个buffer句柄
|
||
* 形参:
|
||
* 无
|
||
*/
|
||
extern BufferHandle FCreatBuffer(void);
|
||
|
||
/*返回值:0成功,负数失败
|
||
* 函数作用:初始化当前的buffer结构体
|
||
* 形参:
|
||
* buffer:需要初始化的buffer
|
||
* data:buffer面向的缓存首地址
|
||
* unitSize:缓存的单位长度
|
||
* bufferMaxLen:缓存的最大长度
|
||
*
|
||
*注意事项:缓存单位长度必须是缓存最大长度的整数倍
|
||
*/
|
||
extern int FInitBuffer(BufferHandle handleBuffer,void* data,unsigned int unitSize,unsigned int bufferMaxLen);
|
||
|
||
|
||
/*返回值:0成功,负数失败
|
||
* 函数作用:设置缓存的接受超时读取
|
||
* 形参:
|
||
* handleBuffer:缓存句柄
|
||
* timeout:接受超时
|
||
*
|
||
*注意事项:调用该函数则打开接受超时,默认情况下是关闭接受超时的
|
||
*/
|
||
extern int FInitBufferRecTime(BufferHandle handleBuffer,int timeout);
|
||
|
||
|
||
/*返回值:0成功,负数失败
|
||
* 函数作用:把数据压入buffer
|
||
* 形参:
|
||
* buffer:需要压入的buffer
|
||
* data:需要压入数据的首地址
|
||
*/
|
||
extern int FPushBuffer(BufferHandle handleBuffer,void* data);
|
||
|
||
|
||
/*返回值:0成功,负数失败
|
||
* 函数作用:把数据取出buffer
|
||
* 形参:
|
||
* buffer:需要取出的buffer
|
||
* data:接受取出数据的指针
|
||
*/
|
||
extern int FPopBuffer(BufferHandle handleBuffer,void* data);
|
||
|
||
/*返回值:无
|
||
* 函数作用:定时给予CPU运行,可以自动触发回调函数
|
||
* 形参:
|
||
* buffer:需要处理的buffer
|
||
*/
|
||
extern void FBufferTask(BufferHandle handleBuffer);
|
||
|
||
/*返回值:无
|
||
* 函数作用:绑定缓存的接受函数
|
||
* 形参:
|
||
* handleBuffer:绑定的缓存句柄
|
||
* func:绑定的函数
|
||
*/
|
||
extern void FBufferBindMsgFuc(BufferHandle handleBuffer,BufferFuc func);
|
||
|
||
|
||
/*返回值:无
|
||
* 函数作用:绑定缓存的接受溢出函数
|
||
* 形参:
|
||
* handleBuffer:绑定的缓存句柄
|
||
* func:绑定的函数
|
||
*/
|
||
extern void FBufferBindOverFuc(BufferHandle handleBuffer,BufferFuc func);
|
||
|
||
|
||
/***********************************需要移植*********************************/
|
||
/*返回值:无
|
||
* 函数作用:绑定互锁的锁函数
|
||
* 形参:
|
||
* handleBuffer:绑定的缓存句柄
|
||
* func:锁行为动作
|
||
*/
|
||
extern void FBufferBindLockFunc(BufferHandle handleBuffer,BufferActFuc func);
|
||
|
||
|
||
/*返回值:无
|
||
* 函数作用:绑定互锁的解锁函数
|
||
* 形参:
|
||
* handleBuffer:绑定的缓存句柄
|
||
* func:解锁行为动作
|
||
*/
|
||
extern void FBufferBindUnLockFunc(BufferHandle handleBuffer,BufferActFuc func);
|
||
|
||
#endif
|
||
|