TemplateHashTableSigtran<Key, Value, Hash, Cmp>(uint32_t size = 4194304, uint32_t timeout = 259200/*, uint32_t timeout_unit = 2000*/) // size必须是2^n { memset(name_, 0x0, 128); memset(&hash_status_, 0, sizeof(hash_status_)); #ifdef USE_ATOMIC rte_atomic32_init(&hash_status_.node_list_size_); rte_atomic32_init(&hash_status_.max_bucket_item_size_); #endif hash_status_.hash_size_ = size; hash_status_.timeout_interval_sec_[NODE_TYPE_DEFAULT] = timeout; hash_status_.timeout_interval_sec_[NODE_TYPE_ATTACH] = 600;//暂时写死为600s,超时后会重新向其他MME发送查询请求,相当于是请求间隔; hash_status_.timeout_interval_sec_[NODE_TYPE_MAX] = 0;//内部逻辑错误导致赋值错误的; // hash_status_.timeout_interval_buckets_ = timeout_unit; hash_status_.timeout_interval_buckets_ = size / 20; //每次遍历 1/5 hash_bucket_ = new Bucket[hash_status_.hash_size_]; }什么意思
时间: 2024-04-07 08:31:54 浏览: 60
HASH_hash_stm32hash_stm32hash表_stm32f407_
这是一个模板函数,用于创建一个哈希表(HashTable),其中包含了键(Key)和值(Value),使用指定的哈希函数(Hash)和比较函数(Cmp)。该函数有两个参数,分别是哈希表的大小(size)和超时时间(timeout)。哈希表的大小必须是2的n次方,超时时间是指节点在哈希表中的存活时间。函数内部会初始化哈希表的状态(hash_status_)和节点数组(hash_bucket_)。其中,节点数组是哈希表的主要数据结构,用于存储键值对。在初始化过程中,还会设置哈希表的超时时间间隔(timeout_interval_sec_)和超时时间间隔的单位(timeout_interval_buckets_)等参数。
阅读全文