vsomeip发送数据的细节

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值