在ACE/TAO 的編程裏,事情因爲idl編譯器的出現而簡單了很多。在網上查查除了 TAO 的idl 編譯器別的好的也就沒了。微軟的midl 倒是好用的,但是編譯出來的C文件就沒打算讓人得以去閱讀。。。
RtecEventChannelAdmin.idl RtecEventComm.idl 這兩個 idl 描述了 rt_event 服務的接口 以及 提供服務的對象。實際上 網絡通信,對象傳遞的部分 已經被 ORB 完成了,rt_event 服務只是 維持 一個EventChannel的內存管理數據結構 劃分依據是不同event的 ACE_SupplierQOS_Factory publications; publications.insert (source, type, 0, 1); 裏的 type ,對應一類 consumer 以及 一類 supplier。 至於 接收方。則被回調 push 方法。 push方法的具體實現在TAO_EC_Type_Filter 裏,也是根據type來分的。而EC_Filter頭文件包含這兩個頭文件。則push實現以及回調註冊都應該是在EC_Filter的Base類裏就做了的。
#include "orbsvcs/RtecEventCommC.h"#include "event_export.h"
分析進行中。。。