【Live555】live555源码详解系列笔记
3、BasicHashTable 哈希表
协作图:
3.1 BasicHashTable
BasicHashTable 继承自 HashTable
重载 HashTable 接口
Add :添加键值对
Remove :删除键值
Lookup :由“健”查找“值”
numEntries :键值对数量
重载 HashTable 成员(一个迭代器)
class Iterator
重载 Iterator的成员函数 next
需要实现的 HashTable 接口
HashTable* HashTable::create(int keyType) {
return new BasicHashTable(keyType);
}
HashTable::Iterator* HashTable::Iterator::create(HashTable const& hashTable) {
// "hashTable" is assumed to be a BasicHashTable
return new BasicHashTable::Iterator((BasicHashTable const&)hashTable);
}
3.2 HashTable 纯虚类
需要实现的接口
create :这是一个静态函数,不是虚函数,需要用这个函数来创建哈希表
实现的接口:
IsEmpty :是否为空
RemoveNext :删除下一组键值对
getFirst :返回第一组键值对的“值”
纯虚函数:
Add :添加键值对
Remove :删除键值
Lookup :由“健”查找“值”
numEntries :键值对数量
4、DelayQueue 延时任务队列
DelayQueue 继承自 DelayQueueEntry
主要接口:
addEntry :增加任务;
removeEntry :删除任务
updateEntry :更新任务,等于先删除,后增加
handleAlarm :先判断剩余时间,如果为零,则执行一个任务
timeToNextAlarm :距离下一个延时任务执行还有多久
DelayQueueEntry 表示一个任务节点
主要接口:
token:返回 token令牌,每个任务都对应一个令牌
5、HandlerSet 监听的任务容器
assignHandler :添加任务
clearHandler :删除任务
moveHandler :使用新的替换旧的任务
相关类
HandlerDescriptor :表示一个任务
HandlerIterator :迭代器
【Live555】live555源码详解系列笔记