ios TPCircularBuffer 的使用
来源:互联网 发布:淘宝汽车服务 编辑:程序博客网 时间:2024/05/23 12:43
https://github.com/michaeltyson/TPCircularBuffer
这个环形buffer还不错,就是没有使用的说明:
1. 加入
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-(BOOL) Init_buffer:(TPCircularBuffer*)buffer_ :size_{
return TPCircularBufferInit( buffer_, size_ );
}
-(void) Destory_buffer:(TPCircularBuffer*)buffer_
{
TPCircularBufferCleanup( buffer_ );
}
-(UInt32)addData:(TPCircularBuffer*)buffer_ :(void *)buf_ :(UInt32)size_
{
int32_t availableBytes = 0;
TPCircularBufferHead(buffer_, &availableBytes);
if (availableBytes <= 0)
return 0;
UInt32 len = (availableBytes >= size_ ? size_ : availableBytes);
TPCircularBufferProduceBytes(buffer_, (void*)buf_, size_);
return len;
}
-(UInt32)getData:(TPCircularBuffer*)buffer_ :(void *)buf_ :(UInt32)size_
{
int32_t availableBytes = 0;
void *bufferTail = TPCircularBufferTail(buffer_, &availableBytes);
if (availableBytes >= size_)
{
UInt32 len = 0;
len = (size_ > availableBytes ? availableBytes : size_);
memcpy(buf_, bufferTail, len);
TPCircularBufferConsume(buffer_, len);
NSLog(@"len = %ld", len);
return len;
}
return 0;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2. 定义对象
// 生成一个环形队列实例
TPCircularBuffer buffer;
TPCircularBuffer buffer2;
3.
// 初始化队列
[self Init_buffer:&buffer : BUF_SIZE];
4.
Uint8 pread[4096];
memset( pread, 0, sizeof( pread ) * sizeof(Uint8) );
// fill buffer............ to pread.......
[self addData:&buffer :pread :size];
5.
Uint8 pw[4096];
memset( pw, 0, sizeof( pw ) * sizeof(Uint8) );
// get data from pw.....
UInt32 buf_size = [self getData: &buffer :pw : sizeof( pw )];
6.
TPCircularBufferCleanup(&buffer);
结束。。。。
- ios TPCircularBuffer 的使用
- IOS Layer的使用
- IOS线程的使用
- iOS NSOperationQueue的使用
- iOS NSNotification的使用
- ios Bundle的使用
- IOS ARC的使用
- IOS UITableViewCell的使用
- ios .a的使用
- ios Layer的使用
- ios MKNetworkKit 的使用
- iOS keychain的使用
- IOS NSUserDefault的使用
- IOS NSRunloop 的使用
- IOS Layer的使用
- ios Layer的使用
- IOS线程的使用
- IOS NSlog 的使用
- android.support.v7.app.AlertDialog.Builder使用说明
- AutoCAD 的打开对话框不见了
- Python黑帽编程2.5 函数
- Elasticsearch进行and,or多条件组合DSL结构化查询
- LeetCode 5. Longest Palindromic Substring
- ios TPCircularBuffer 的使用
- PHP 5.3中新增的魔术常量__DIR__
- Retrofit网络请求使用
- ZZULIOJ 1105: 判断友好数对(函数专题)
- WPF之UI知识总结
- Apache shiro集群实现 (一) shiro入门介绍
- 指向指针的指针,指针的运算,指针与多维数组的关系
- tc流量控制
- Android开发之制作圆形头像自定义View,直接引用工具类,加快开发速度。带有源代码学习