#ifndef _BUFFER_H_ #define _BUFFER_H_ #include /***********************************宏开关**********************************/ #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