【Live555】live555源码详解(二):BasicHashTable、DelayQueue、HandlerSet

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		:迭代器

你可能感兴趣的:(视频)