LWL/nlib/buffer/buffer.h
youxianghua faacc7b570 提交
2024-07-10 14:01:39 +08:00

117 lines
2.6 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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
* databuffer面向的缓存首地址
* 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