jrtplib 源码分析 (一) 辅助类
来源:互联网 发布:淘宝查假冒伪劣处罚 编辑:程序博客网 时间:2024/06/09 05:13
jrtplib 需要用到 jthread中的文件 jmutex 和 jthread
jthread类包含:
jmutex : 互斥类 。
JMutexAutoLock :构造函数实现加锁 虚构函数实现解锁 参数为 jmutex对象。
jthread : 线程类 抽象类 继承者需实现对 virtual void *Thread() = 0; 的实现 用以实现自己想要的功能。
jrtplib类:
rtpdebug:重载了new
struct MemoryInfo //内存申请信息
{
void *ptr; //内存指针
size_t size; //内存大小
int lineno; //申请时行号
char *filename; //文件名称
MemoryInfo *next;
};
void *operator new(size_t s,char filename[],int line) // 用来保存申请内存的信息
void dodelete(void *p) //删除内存
rtprandom : 生成随机数
rtperrors :错误类型定义
rtpdefines :常量定义
rtpconfig : 根据操作系统类型判断包含那个头文件 rtpconfig_win rtpconfig_unix.h 定义的常量值
rtptypes :定义int8_t , int16_t , int32_t, int64_t 类型
rtpmemorymanager:内存管理 申请 释放
rtpmemoryobject:设置和得到 RTPMemoryManager *memmgr 对象
注释 :
本人最近阅读 RTP源代码,对类似以下的语句很不理解
RTCPPacket *p;
p = RTPNew(GetMemoryManager(),RTPMEM_TYPE_CLASS_RTCPSRPACKET) RTCPSRPacket(data,length);
new的第一个大小参数(类型为size_t) 是编译器自己加上去的。new(a,b) T 变成 new(sizeof(T),a,b) T 所以
RTPNew(GetMemoryManager(),RTPMEM_TYPE_CLASS_RTCPSRPACKET) RTCPSRPacket
相当于
new (GetMemoryManager(),RTPMEM_TYPE_CLASS_RTCPSRPACKET) RTCPSRPacket
相当于
new ( sizeof(RTCPSRPacket), GetMemoryManager(),RTPMEM_TYPE_CLASS_RTCPSRPACKET) RTCPSRPacket
rtpaddress :网络地址基类 抽象类
rtpipv4address : 继承自 rtpaddress
rtpipv6address: 继承自 rtpaddress
rtpkeyhashtable:哈希表 模板类
class HashElement //哈希元素
{
private:
int hashindex;
Key key;
Element element;
public:
HashElement *hashprev,*hashnext;
HashElement *listprev,*listnext;
};
HashElement *table[hashsize]; 数组指针 二维数组 根据key的索引值 包含HashElement的链表 指针
HashElement *firsthashelem,*lasthashelem; 数据的链表开始和结束
HashElement *curhashelem; 当前项 查找 删除时使用
GetIndex::GetIndex(class key &k) : 得到索引值 k%8371
rtptimeutilities:ntp时间类 秒 + 微妙 (1/1000000)
rtpcollisionlist: 接收地址检测 地址是否存在 超时检测
rtplibraryversion :库版本号
- jrtplib 源码分析 (一) 辅助类
- jrtplib 源码分析 (二) 数据包
- jrtplib 源码分析 (三) SOCKET
- jrtplib的简单封装类及使用(一)
- 源码分析(一)
- 多线程辅助类之数组(一)
- 线程辅助类(一)--Exchanger
- 分析jrtplib库的内存管理类
- 分析jrtplib库的内存管理类
- LLVM 源码分析 (一) pass 类
- Mupdf源码分析之MuPDFActivity类分析(一)
- jrtplib example1源码解析
- JUnit源码分析(一)
- osworkflow源码分析(一)
- Log4net源码分析(一)
- Mangos源码分析(一)
- Notepad++源码分析(一)
- Log4net源码分析(一)
- Android之Adapter用法总结
- 幼儿园教育应坚持积极鼓励教育
- mule进阶之jdbc transport:
- Android中的Socket编程的基本思路
- C++ 回忆录8 copy constructor and Assigment Operator
- jrtplib 源码分析 (一) 辅助类
- sockfs: the most simple file system in linux kernel
- C# 上传 下载 源代码
- 一个教训
- 大数运算小结
- 实例repeater 分页、表头不动、添加列序号(dataset实现)
- js通过Class Name获取一个对象的数组
- xen体系结构
- 【转载】Lua 脚本语法说明