DSS系列:2、CommonUtilitiesLib介绍

2020-03-06  本文已影响0人  捧着漏勺喝汤

这个模块含有一个工具箱,包括线程管理,数据结构,网络,和文本解析工具。Darwin流媒体服务器及其相关工具通过这些类对类似或者相同的任务进行抽象,以减少重复代码;这些类的封装简化了较高层次的代码;借助这些类还分离了专用于不同平台的代码。下面是对目录下的各个类的简短描述:

各个模块功能

OS:封装时间接口
OSBufferPool:缓存池,通过队列实现
OSCodeFragment:加载动态库
OSCond:事件对象
OSFileSource:文件操作,加入了缓存功能
OSHeap:堆,用数组实现
OSMapEx:EasyDarwin实现,工程未使用
OSMutex:关键代码段
OSMutexRW:读写锁,通过OSMutex和OSCond实现
OSQueue:队列
OSQueueIter:队列指针,可用来遍历
OSQueue_Blocking:队列同步处理
OSHashTable:哈希表
OSThread:线程类,其中线程数据使用TLS来实现。线程局部存储(Thread Local Storage,TLS)用来将数据与一个正在执行的指定线程关联起来。子类实现Entry,为线程的运行代码。

TaskThreadPool:全局线程池
TaskThread:任务线程
Task:任务,执行Signal时,会从TaskThreadPool中取TaskThread来运行

EventContext:事件上下文,主要是关联EventThread,请求网络事件,只有子类Socket
Socket:套接字,实现了套接字的功能,并关联全局唯一EventThread线程(专门处理网络事件)
TCPSocket:TCP套接字,继承Socket,主要实现以TCP方式打开套接字
TCPListenerSocket:TCP服务类,继承TCPSocket和IdleTask。通过GetSessionTask来关联套接字处理任务

QTSSStream:流,只定义了基础的读写相关操作
QTSSDictionary : 继承QTSSStream,作为数据字典提供保存变量,获取变量,修改,删除变量。通过复杂的嵌套来实现。

上一篇 下一篇

猜你喜欢

热点阅读