###
Feature matrix for the Cos Notification Service

#### Supported Interfaces

CosNotification::QoSAdmin
CosNotification::AdminPropertiesAdmin
CosNotifyComm::NotifyPublish
CosNotifyComm::NotifySubscribe
CosNotifyComm::PushConsumer
CosNotifyComm::PushSupplier
CosNotifyComm::StructuredPushConsumer
CosNotifyComm::StructuredPushSupplier
CosNotifyComm::SequencePushConsumer
CosNotifyComm::SequencePushSupplier
CosNotifyFilter::Filter
CosNotifyFilter::MappingFilter
CosNotifyFilter::FilterFactory
CosNotifyFilter::FilterAdmin
CosNotifyChannelAdmin::ProxyConsumer
CosNotifyChannelAdmin::ProxySupplier
CosNotifyChannelAdmin::ProxyPushConsumer
CosNotifyChannelAdmin::StructuredProxyPushConsumer
CosNotifyChannelAdmin::SequenceProxyPushConsumer
CosNotifyChannelAdmin::ProxyPushSupplier
CosNotifyChannelAdmin::StructuredProxyPushSupplier
CosNotifyChannelAdmin::SequenceProxyPushSupplier
CosNotifyChannelAdmin::ConumerAdmin
CosNotifyChannelAdmin::SupplierAdmin
CosNotifyChannelAdmin::EventChannel
CosNotifyChannelAdmin::EventChannelFactory

#### UnSupported Interfaces

CosNotifyComm::PullConsumer
CosNotifyComm::PullSupplier
CosNotifyComm::StructuredPullConsumer
CosNotifyComm::StructuredPullSupplier
CosNotifyComm::SequencePullConsumer
CosNotifyComm::SequencePullSupplier
CosNotifyChannelAdmin::ProxyPullSupplier
CosNotifyChannelAdmin::StructuredProxyPullSupplier
CosNotifyChannelAdmin::SequenceProxyPullSupplier
CosNotifyChannelAdmin::ProxyPullConsumer
CosNotifyChannelAdmin::StructuredProxyPullConsumer
CosNotifyChannelAdmin::SequenceProxyPullConsumer

Interface : `CosNotification::QoSAdmin`
Base Interface(s) : none

Method | Supported | Tested | Notes
--- | --- | --- | ---
`get_qos` | Yes | No |
`set_qos` | Yes | Yes, see Ordering Discarding |
`validate_qos` | No |  |

QoS Properties support on all interfaces supporting CosNotification::QoSAdmin

- EventReliability : Not supported
- ConnectionReliability : Not supported
- Priority : Supported Per Message, Priority applied to Channel, Admin or proxy Objects are NOT applied to the events.
- StartTime : Not supported
- StopTime : Not Supported
- Timeout : Supported Per Message, Timeouts applied to Channel, Admin or proxy Objects are NOT applied to the events.
- StartTimeSupported : Not Supported
- StopTimeSupported : Not Supported
- MaxEventsPerConsumer : Supported (Only applies to ProxySuppliers)
- OrderPolicy : Supported policies - PriorityOrder, AnyOrder, FifoOrder, LifoOrder, DeadlineOrder
- DiscardPolicy : : Supported policies - PriorityOrder, AnyOrder, FifoOrder, LifoOrder, DeadlineOrder
- MaximumBatchSize : Supported and applied to SequenceProxySuppliers
- PacingInterval : Supported and applied to SequenceProxySuppliers

Interface : `CosNotification::AdminPropertiesAdmin`
Base Interface(s) : none

Method | Supported | Tested | Notes
--- | --- | --- | ---
`get_admin` | Yes | No |
`set_admin` | Yes | Yes, see Events |

Interface : `CosNotifyComm::NotifyPublish`
Base Interface(s) : none

Method | Supported | Tested | Notes
--- | --- | --- | ---
`offer_change` | Yes | Yes, see Updates |

Interface : `CosNotifyComm::NotifySubscribe`
Base Interface(s) : none

Method | Supported | Tested | Notes
--- | --- | --- | ---
`subscription_change` | Yes | see Updates |

Interface : `CosNotifyComm::PushConsumer`
Base Interface(s) : `CosNotifyComm::NotifyPublish`, CosEventComm::PushConsumer

Method | Supported | Tested | Notes
--- | --- | --- | ---
`CosEventComm::PushConsumer::push` | Yes | Yes, see MultiTypes,Simple |
`CosEventComm::PushConsumer::disconnect_push_consumer` | Yes | Yes, see ConnectDisconnect |

Interface : `CosNotifyComm::PullConsumer`
Not Supported .

Interface : `CosNotifyComm::PushSupplier`
Base Interface(s) : `CosNotifyComm::NotifySubscribe, CosEventComm::PushSupplier`

Method | Supported | Tested | Notes
--- | --- | --- | ---
`CosEventComm::PushConsumer::disconnect_push_supplier` | Yes | Yes, see ConnectDisconnect |

Interface : `CosNotifyComm::PullSupplier`
Not Supported .

Interface : `CosNotifyComm::StructuredPushConsumer`
Base Interface(s) CosNotifyComm::NotifyPublish

Method | Supported | Tested | Notes
--- | --- | --- | ---
`push_structured_event` | Yes | Yes, see MultiTypes |
`disconnect_structured_push_consumer` | Yes | Yes, see ConnectDisconnect |

Interface : `CosNotifyComm::StructuredPullConsumer`
Not Supported .

Interface : `CosNotifyComm::StructuredPullSupplier`
Not Supported .

Interface : `CosNotifyComm::StructuredPushSupplier`
Base Interface(s) CosNotifyComm::NotifySubscribe

Method | Supported | Tested | Notes
--- | --- | --- | ---
`disconnect_structured_push_supplier` | Yes | Yes, see ConnectDisconnect |

Interface : `CosNotifyComm::SequencePushConsumer`
Base Interface(s) `CosNotifyComm::NotifyPublish`

Method | Supported | Tested | Notes
--- | --- | --- | ---
`push_structured_events` | Yes | Yes, see MultiTypes |
`disconnect_sequence_push_consumer` | Yes | Yes, see ConnectDisconnect |

Interface : `CosNotifyComm::SequencePullConsumer`
Not Supported .

Interface : `CosNotifyComm::SequencePullSupplier`
Not Supported .

Interface : `CosNotifyComm::SequencePushSupplier`
Base Interface(s) CosNotifyComm::NotifySubscribe

Method | Supported | Tested | Notes
--- | --- | --- | ---
`disconnect_sequence_push_supplier` | Yes | Yes, see ConnectDisconnect |

Interface : `CosNotifyFilter::Filter`
Base Interface(s) none

Method | Supported | Tested | Notes
--- | --- | --- | ---
`constraint_grammar` | Yes | No |
`add_constraints` | Yes | Yes, see Filter |
`modify_constraints` | Yes | No |
`get_constraints` | Yes | No |
`get_all_constraints` | Yes | No |
`remove_all_constraints` | Yes | No |
`destroy` | Yes | No |
`match` | Yes | No |
`match_structured` | Yes | yes, called internally by Notification during execution of Structured_Filter |
`match_typed` | No | No |
`attach_callback` | No | No |
`detach_callback` | No | No |
`get_callbacks` | No | No |

Interface : `CosNotifyFilter::MappingFilter`
Not Supported .

Interface : `CosNotifyFilter::FilterFactory`
Base Interface(s) none

Method | Supported | Tested | Notes
--- | --- | --- | ---
`create_filter` | Yes | Yes, see Filter |
`create_mapping_filter` | No |  |

Interface : `CosNotifyFilter::FilterAdmin`
Base Interface(s)

Method | Supported | Tested | Notes
--- | --- | --- | ---
`add_filter` | Yes | Yes, see Filter |
`remove_filter` | Yes | Yes, see Filter |
`get_filter` | Yes | No |
`get_all_filters` | Yes | Yes, see Filter |
`remove_all_filters` | Yes | Yes, see Filter |

Interface : `CosNotifyChannelAdmin::ProxyConsumer`
Base Interface(s) `CosNotification::QoSAdmin `, `CosNotifyFilter::FilterAdmin`

Method | Supported | Tested | Notes
--- | --- | --- | ---
`MyType` | Yes | No |
`MyAdmin` | Yes | No |
`obtain_subscription_types` | Yes | Yes, see Updates | Only CosNotifyChannelAdmin::ALL_NOW_UPDATES_ON tested
`validate_event_qos` | No |  |

Interface : `CosNotifyChannelAdmin::ProxySupplier`
Base Interface(s) `CosNotification::QoSAdmin `, `CosNotifyFilter::FilterAdmin`

Method | Supported | Tested | Notes
--- | --- | --- | ---
`MyType` | Yes | No |
`MyAdmin` | Yes | No |
`priority_filter` | No |  |
`lifetime_filter` | No |  |
`obtain_offered_types` | Yes | Yes, see Updates | Only CosNotifyChannelAdmin::ALL_NOW_UPDATES_ON tested
`validate_event_qos` | No |  |

Interface : `CosNotifyChannelAdmin::ProxyPushConsumer`
Base Interface(s) `CosNotification::ProxyConsumer , CosNotifyComm::PushConsumer ``

Method | Supported | Tested | Notes
--- | --- | --- | ---
`connect_any_push_supplier` | Yes | Yes, see MultiTypes,ConnectDisconnect |

Interface : `CosNotifyChannelAdmin::StructuredProxyPushConsumer`
Base Interface(s) `CosNotification::ProxyConsumer , CosNotifyComm::StructuredPushConsumer `

Method | Supported | Tested | Notes
--- | --- | --- | ---
`connect_structured_push_supplier` | Yes | Yes, see MultiTypes,ConnectDisconnect |

Interface : `CosNotifyChannelAdmin::SequenceProxyPushConsumer`
Base Interface(s) `CosNotification::ProxyConsumer , CosNotifyComm::SequencePushConsumer `

Method | Supported | Tested | Notes
--- | --- | --- | ---
`connect_sequence_push_supplier` | Yes | Yes, see MultiTypes,ConnectDisconnect |

Interface : `CosNotifyChannelAdmin::ProxyPullSupplier`
Not Supported .

Interface : `CosNotifyChannelAdmin::StructuredProxyPullSupplier`
Not Supported .

Interface : `CosNotifyChannelAdmin::SequenceProxyPullSupplier`
Not Supported .

Interface : `CosNotifyChannelAdmin::ProxyPullConsumer`
Not Supported .

Interface : `CosNotifyChannelAdmin::StructuredProxyPullConsumer`
Not Supported .

Interface : `CosNotifyChannelAdmin::SequenceProxyPullConsumer`
Not Supported .

Interface : `CosNotifyChannelAdmin::ProxyPushSupplier`
Base Interface(s) `CosNotification::ProxySupplier, CosNotifyComm::PushSupplier `

Method | Supported | Tested | Notes
--- | --- | --- | ---
`connect_any_push_consumer` | Yes | Yes, see MultiTypes,ConnectDisconnect |
`suspend_connection` | Yes | No |
`resume_connection` | Yes | No |

Interface : `CosNotifyChannelAdmin::StructuredProxyPushSupplier`
Base Interface(s) `CosNotification::ProxySupplier, CosNotifyComm::StructuredPushSupplier `

Method | Supported | Tested | Notes
--- | --- | --- | ---
`connect_structured_push_consumer` | Yes | Yes, see MultiTypes,ConnectDisconnect |
`suspend_connection` | Yes | No |
`resume_connection` | Yes | No |

Interface : `CosNotifyChannelAdmin::SequenceProxyPushSupplier`
Base Interface(s) `CosNotification::ProxySupplier , CosNotifyComm::SequencePushSupplier `

Method | Supported | Tested | Notes
--- | --- | --- | ---
`connect_sequence_push_consumer` | Yes | Yes, see MultiTypes,ConnectDisconnect |
`suspend_connection` | Yes | No |
`resume_connection` | Yes | No |

Interface : `CosNotifyChannelAdmin::ConsumerAdmin`
Base Interface(s) `CosNotification::QoSAdmin , CosNotifyComm::NotifySubscribe , CosNotifyFilter::FilterAdmin , CosEventChannelAdmin::ConsumerAdmin`

Method | Supported | Tested | Notes
--- | --- | --- | ---
`CosEventChannelAdmin::ConsumerAdmin::obtain_push_supplier` | Yes | No |
`CosEventChannelAdmin::ConsumerAdmin::obtain_pull_supplier` | No |  |
`MyID` | Yes | No |
`MyChannel` | Yes | No |
`MyOperator` | Yes | No |
`priority_filter` | No |  |
`lifetime_filter` | No |  |
`pull_suppliers` | No |  |
`push_suppliers` | Yes | No |
`get_proxy_supplier` | Yes | Yes, see Updates |
`obtain_notification_pull_supplier` | No |  |
`obtain_notification_push_supplier` | Yes | Yes, see MultiTypes, ConnectDisconnect |
`destroy` | Yes | Yes, see LifeCycle, IdAssignment |

Interface : `CosNotifyChannelAdmin::SupplierAdmin`
Base Interface(s) `CosNotification::QoSAdmin , CosNotifyComm::NotifyPublish , CosNotifyFilter::FilterAdmin , CosEventChannelAdmin::SupplierAdmin`

Method | Supported | Tested | Notes
--- | --- | --- | ---
`CosEventChannelAdmin::SupplierAdmin::obtain_push_consumer` | Yes | No |
`CosEventChannelAdmin::SupplierAdmin::obtain_pull_consumer` | No |  |
`MyID` | Yes | No |
`MyChannel` | Yes | No |
`MyOperator` | Yes | No |
`pull_consumers` | No |  |
`push_consumers` | Yes | No |
`get_proxy_consumer` | Yes | Yes, see Updates |
`obtain_notification_pull_supplier` | No |  |
`obtain_notification_push_consumer` | Yes | Yes, see MultiTypes, ConnectDisconnect |
`destroy` | Yes | Yes, see LifeCycle, IdAssignment |

Interface : `CosNotifyChannelAdmin::EventChannel`
Base Interface(s) `CosNotification::QoSAdmin , CosNotification::AdminPropertiesAdmin , CosEventChannelAdmin::EventChannel`

Method | Supported | Tested | Notes
--- | --- | --- | ---
`CosEventChannelAdmin::EventChannel::for_consumers` | Yes | No |
`CosEventChannelAdmin::EventChannel::for_suppliers` | Yes | No |
`CosEventChannelAdmin::EventChannel::destroy` | Yes | yes, see Events, Filter |
`MyFactory` | Yes | No |
`default_consumer_admin` | Yes | Yes, see Events |
`default_supplier_admin` | Yes | Yes, see Events |
`default_filter_factory` | Yes | Yes, see Filter |
`new_for_consumers` | Yes | Yes, see Simple,Events |
`new_for_suppliers` | Yes | Yes, see Simple,Events |
`get_consumeradmin` | Yes | Yes, see IdAssignment |
`get_supplieradmin` | Yes | Yes, see IdAssignment |
`get_all_consumeradmins` | Yes | No |
`get_all_supplieradmins` | Yes | No |

AdminProperties supported at the EventChannel are:

- MaxQueueLength, MaxConsumers, MaxSuppliers, RejectNewEvents

see AdminProperties

Interface : `CosNotifyChannelAdmin::EventChannelFactory`
Base Interface(s) : none

Method | Supported | Tested | Notes
--- | --- | --- | ---
`create_channel` | Yes | Yes, see Events,Simple |
`get_all_channels` | Yes | No |
`get_event_channel` | Yes | Yes, see IdAssignment |

```````````````