层级关系式从下往上依次降低
当事件产生的时候会触发回调,例如消息接收事件,当事件触发的时候,事件会层层冒泡从高层级往低层级传递时间,在传递的过程中层层过滤,在domainparticipantlistener这一层中是没有任何的过滤器的,也就是说这一层不用关闭任何过滤器就可以让消息通过,传递到下一层,到了下一层的话比如是到了subscriberlistener这一层,这一层有一个on_data_reader过滤器,如果这个过滤器处于开启状态这个事件就会触发on_data_reader停止冒泡了,否则继续往下一层冒泡,到达datawriterlistener这一层, 这一层的话也有一个消息过滤器(其他的可能是别的事件的过滤器,不一定是消息到达事件的过滤器),该过滤器的作用和上一层的on_data_reader过滤器的作用是一样的,都是对消息事件进行处理的作用,同样如果开启状态事件就会触发on_data_ava也就不再冒泡了
对于mask的书写如果是增量那么就是StatusMask::none()<<StatusMask::xxx()
如果是减量的话就是StatusMask::all()>>StatusMask::xxx()
注意在subscriberlistener如果把on_data_ava过滤器关闭的话也会误打误撞把on_data_reader过滤器关掉,所以消息事件会继续向下冒泡的,一个事件在不同的地方调用的是不同的方法 ,这个Sub里面是获取不到送给哪个dataReader的, 那么o_d_a是自然调用不了的, ,所以退而求其次, 去调用了o_d_r ,每个层级有每个层级能处理的事件, 事件是事件, 过滤器(回调)是过滤器 ,只有事件的类型和属性 ,每个层级根据自己能够怎么处理这个事件选择自身的过滤器 ,在subscriberlistener就只透过 “收到消息事件” 的话完全可以写成StatusMask::all() >> StatusMask::data_reader()