【每周一库】 todo_r - Find all your notes with one command!

本期的每周一库带来的一个cli工具,todo_r,可以快速的找到代码中的todo

todo_r的相关链接

  • https://github.com/lavifb/todo_r

根据github项目说明我们可以知道,Todo_r是一个简单的用来追踪代码中TODO的cli工具。它可以方便的统计代码中所有备注为TODO的内容,它的功能和leasot有很多相似之处,得益于rust的高性能,Todo_r运行速度要更快。

下面我们来试用Todo_r库

测试环境

  • Windows 10

  • cargo --version: cargo 1.46.0-nightly (089cbb80b 2020-06-15)

  • rustc --version: rustc 1.46.0-nightly (6bb3dbfc6 2020-06-22)

首先我们通过项目的release页面下载对应os版本的release包,这里我们下载的是

  • todor-v0.7.3-x86_64-pc-windows-gnu.tar.gz

下载之后把todor.exe所在目录添加到系统的环境变量PATH中,方便我们从terminal中访问todor cli工具。

这里我们选择之前【每周一库】的工程hello-valora进行展示,已推送到github上。

接下来我们到工程的根目录进行todor的初始化

todor init

经过初始化之后,会在工程根目录添加配置文件.todor,文件中定义了信息的样式,parse代码的pattern等内容,给了非常大的自由度来定制化。

接下来在termial中运行命令来查看TODO信息即可

todor

对应返回内容为:

对应代码中的TODO内容为

到这里就是本期每周一库的全部内容,todor让你不忘记代码中的TODO(BUG),:)

好的,我理解了您的要求。以下是在S1mmeSession::CheckTimeout函数中增加一个超时处理函数的代码示例: ``` void S1mmeSession::CheckTimeout(uint64_t second, uint8_t worker_id) { //主map 超时, 同时伴随 辅助map 超时 bool dead_loop_major,dead_loop_hoc,dead_loop_stmsi; { S1APNode* p_cur = (S1APNode*)(p_major_map_->GetHead()); S1APKey_T* p_cur_key = p_major_map_->GetCursorKey(); S1APNode* p_next = (S1APNode*)(p_major_map_->Next()); S1APKey_T* p_next_key = p_major_map_->GetCursorKey(); while (p_next != NULL) { if (current_time_.tv_sec - p_cur->GetLastTime().tv_sec > timeout_major_) { if (handle_session_version_ == S1MME_SESSION_VERSION_CHINA_TELECOM) { CtOutputNode(p_cur,true); } else { CuOutputNode(p_cur,s1mme_worker_id_,true); } p_path_switch_map_->DeleteData(p_cur->GetMMEKey(), p_s1ap_node_allocator_); p_handover_container_map_->DeleteData(p_cur->GetContainerKey(), p_s1ap_node_allocator_); SPUserInfo& sp_user_info = p_cur->GetUserInfo(); //Todo@ydzy:超时stmsi map p_major_map_->DeleteData(p_cur_key, p_s1ap_node_allocator_); // 增加超时处理函数 if (current_time_.tv_sec - p_cur->GetLastTime().tv_sec > timeout_new_hash_node_) { LogInfo("超时处理函数:节点超时,当前时间:%llu,节点信息:{字段1:%d,字段2:%d,字段3:%s}。", current_time_.tv_sec, p_cur->GetField1(), p_cur->GetField2(), p_cur->GetField3().c_str()); } p_cur = p_next; p_next = (S1APNode)(p_major_map_->Next()); p_cur_key = p_next_key; p_next_key = p_major_map_->GetCursorKey(); } else { break; } } dead_loop_major = p_major_map_->CheckDeadLoop(); } } ``` 其中,超时处理函数的代码如下: ``` if (current_time_.tv_sec - p_cur->GetLastTime().tv_sec > timeout_new_hash_node_) { LogInfo("超时处理函数:节点超时,当前时间:%llu,节点信息:{字段1:%d,字段2:%d,字段3:%s}。", current_time_.tv_sec, p_cur->GetField1(), p_cur->GetField2(), p_cur->GetField3().c_str()); } ``` 当节点的last_time字段与当前时间的时间差大于timeout_new_hash_node_时,超时处理函数会将该节点的字段以及当前时间输出到日志中。您可以根据需要自行修改输出内容和格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值