ByteXiaoTang
ByteXiaoTang
 i may not understand why _unicast_flag is false, then send_unicast_offer_service.
 suggest not use condition_variable wait_for which will affect by system time change
 found_service_msg should change to false when find one
in sd, check_ipv4_address function, two static should be removed.  because i meet one problem. although i can not understand why. 
 here, we get port error, but we still use its_value, the value we may not expect.
Fdubs跨域是点对点服务通信,中间的nameserver只做了服务发现。缺陷在于服务太多时,通信效率会降低,尤其是在服务提供者提供服务,订阅者偏多时。这就是服务网关存在的意义。 对比vsomeip,跨域通信都经过stub中转,订阅单位基于ip, 订阅量会大幅降低,配合field机制,通信量会少许多。虽然链路好像会长一点。 但经过比对测试,在5ms通信以下级别,fdbus通信负载比vsomeip负载大的多。
the CBaseLoopTimer may has problem. 程序有需求,消息来时创建timer指针,得到回复之后就delete指针。 这样来回new和delete大概几百次之后,就会引起程序cordump.
  use condition_variable which use steady time also may affect by system time change
msg_ref为智能指针,但是被捕获切换线程处理,好像已经被删除,为空。 后来只能如下处理,将其中的值先取出,赋给buffer CBaseMessage *msg = castToMessage(msg_ref); if (nullptr != msg) { std::shared_ptr buffer(std::make_shared()); buffer->assign((char *)(msg->getPayloadBuffer()), msg->getPayloadSize()); int32_t code = msg->code(); } });
sem_timedwait use CLOCK_REALTIME time, which may change when system time change. so timewait will have problem.