client_endpoint_impl::send
endpoint_impl::endpoint_impl ? -> 如果endpoint被stop了,那么send直接返回
client_endpoint_impl::check_message_size -> 如果message大小过大,则需要拆包,如果endpoint类型(tcp/udp)支持拆包,则继续
client_endpoint_impl::cancel_dispatch_timer -> 该timer和flush_cbk函数关联,因为涉及到重新计算dispatcher_timer的超时时间,所以这里先取消,函数完成前再重启启动
client_endpoint_impl::get_configured_times_from_endpoint 获取数据防抖和滞留配置(由派生类实现)
判断must_depart(根据当前train_的情况)
if (must_depart) {
client_endpoint_impl::schedule_train
将当前train加入dispatched_trains_
新建当前train
}
将带发送消息加入当前train
client_endpoint_impl::start_dispatch_timer
client_endpoint_impl::start_dispatch_timer
从dispatched_trains_的头上开始找发车时间距离现在最近的一个train
计算这个train发车时间距离现在还有多久(例如还有3000ms)
设置dispatch_timer_超时时间(3000ms)
设置dispatcher_timer超时后执行client_endpoint_impl::flush_cbk
vsomeip发送数据的细节
最新推荐文章于 2025-07-31 16:23:39 发布
1462

被折叠的 条评论
为什么被折叠?



