diff options
author | Johnny Willemsen <jwillemsen@remedy.nl> | 2011-08-11 11:06:14 +0000 |
---|---|---|
committer | Johnny Willemsen <jwillemsen@remedy.nl> | 2011-08-11 11:06:14 +0000 |
commit | 8480850b27d0b53c2bc18157f8327b5b77959256 (patch) | |
tree | 8cf129044fa2a3dc7f2b81f8ec5e0879becb569b | |
parent | d7372d3695600240a4c49687c361fd1115cf8503 (diff) | |
download | ATCD-8480850b27d0b53c2bc18157f8327b5b77959256.tar.gz |
Thu Aug 11 11:04:12 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
* connectors/dds4ccm/idl/ndds/ndds_dcps.idl:
* connectors/dds4ccm/impl/ndds/convertors/DataReaderQos.h:
* connectors/dds4ccm/impl/ndds/convertors/DataReaderResourceLimitsQosPolicy.h:
* connectors/dds4ccm/impl/ndds/convertors/DataWriterQos.h:
* connectors/dds4ccm/impl/ndds/convertors/DataWriterResourceLimitsQosPolicy.h:
* connectors/dds4ccm/impl/ndds/convertors/DestinationOrderQosPolicy.h:
* connectors/dds4ccm/impl/ndds/convertors/HistoryQosPolicy.h:
Extended IDL QoS representation with several NDDS specific fields
8 files changed, 249 insertions, 1 deletions
diff --git a/CIAO/ChangeLog b/CIAO/ChangeLog index 719f163ead8..a8f0fe34881 100644 --- a/CIAO/ChangeLog +++ b/CIAO/ChangeLog @@ -1,3 +1,14 @@ +Thu Aug 11 11:04:12 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> + + * connectors/dds4ccm/idl/ndds/ndds_dcps.idl: + * connectors/dds4ccm/impl/ndds/convertors/DataReaderQos.h: + * connectors/dds4ccm/impl/ndds/convertors/DataReaderResourceLimitsQosPolicy.h: + * connectors/dds4ccm/impl/ndds/convertors/DataWriterQos.h: + * connectors/dds4ccm/impl/ndds/convertors/DataWriterResourceLimitsQosPolicy.h: + * connectors/dds4ccm/impl/ndds/convertors/DestinationOrderQosPolicy.h: + * connectors/dds4ccm/impl/ndds/convertors/HistoryQosPolicy.h: + Extended IDL QoS representation with several NDDS specific fields + Thu Aug 11 07:01:53 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl> * connectors/dds4ccm/impl/dds4ccm_conf.h: diff --git a/CIAO/connectors/dds4ccm/idl/ndds/ndds_dcps.idl b/CIAO/connectors/dds4ccm/idl/ndds/ndds_dcps.idl index 2ef7d67f29b..76829440c2a 100644 --- a/CIAO/connectors/dds4ccm/idl/ndds/ndds_dcps.idl +++ b/CIAO/connectors/dds4ccm/idl/ndds/ndds_dcps.idl @@ -420,6 +420,43 @@ module DDS { const QosPolicyId_t LIFESPAN_QOS_POLICY_ID = 21; const QosPolicyId_t DURABILITYSERVICE_QOS_POLICY_ID = 22; +#if (CIAO_DDS4CCM_NDDS==1) + /* --- Extension QoS policies: --- */ + const QosPolicyId_t WIREPROTOCOL_QOS_POLICY_ID = 1000; + const QosPolicyId_t DISCOVERY_QOS_POLICY_ID = 1001; + const QosPolicyId_t DATAREADERRESOURCELIMITS_QOS_POLICY_ID = 1003; + const QosPolicyId_t DATAWRITERRESOURCELIMITS_QOS_POLICY_ID = 1004; + const QosPolicyId_t DATAREADERPROTOCOL_QOS_POLICY_ID = 1005; + const QosPolicyId_t DATAWRITERPROTOCOL_QOS_POLICY_ID = 1006; + const QosPolicyId_t DOMAINPARTICIPANTRESOURCELIMITS_QOS_POLICY_ID = 1007; + const QosPolicyId_t EVENT_QOS_POLICY_ID = 1008; + const QosPolicyId_t DATABASE_QOS_POLICY_ID = 1009; + const QosPolicyId_t RECEIVERPOOL_QOS_POLICY_ID = 1010; + const QosPolicyId_t DISCOVERYCONFIG_QOS_POLICY_ID = 1011; + const QosPolicyId_t EXCLUSIVEAREA_QOS_POLICY_ID = 1012; + const QosPolicyId_t USEROBJECT_QOS_POLICY_ID = 1013; + const QosPolicyId_t SYSTEMRESOURCELIMITS_QOS_POLICY_ID = 1014; + const QosPolicyId_t TRANSPORTSELECTION_QOS_POLICY_ID = 1015; + const QosPolicyId_t TRANSPORTUNICAST_QOS_POLICY_ID = 1016; + const QosPolicyId_t TRANSPORTMULTICAST_QOS_POLICY_ID = 1017; + const QosPolicyId_t TRANSPORTBUILTIN_QOS_POLICY_ID = 1018; + const QosPolicyId_t TYPESUPPORT_QOS_POLICY_ID = 1019; + const QosPolicyId_t PROPERTY_QOS_POLICY_ID = 1020; + const QosPolicyId_t PUBLISHMODE_QOS_POLICY_ID = 1021; + const QosPolicyId_t ASYNCHRONOUSPUBLISHER_QOS_POLICY_ID = 1022; + const QosPolicyId_t ENTITYNAME_QOS_POLICY_ID = 1023; + const QosPolicyId_t SERVICE_QOS_POLICY_ID = 1025; + const QosPolicyId_t BATCH_QOS_POLICY_ID = 1026; + const QosPolicyId_t PROFILE_QOS_POLICY_ID = 1027; + const QosPolicyId_t LOCATORFILTER_QOS_POLICY_ID = 1028; + const QosPolicyId_t MULTICHANNEL_QOS_POLICY_ID = 1029; + const QosPolicyId_t TRANSPORTENCAPSULATION_QOS_POLICY_ID = 1030; + const QosPolicyId_t PUBLISHERPROTOCOL_QOS_POLICY_ID = 1031; + const QosPolicyId_t SUBSCRIBERPROTOCOL_QOS_POLICY_ID = 1032; + const QosPolicyId_t TOPICPROTOCOL_QOS_POLICY_ID = 1033; + const QosPolicyId_t DOMAINPARTICIPANTPROTOCOL_QOS_POLICY_ID = 1034; +#endif + typedef sequence<octet> OctetSeq; struct UserDataQosPolicy { OctetSeq value; @@ -511,21 +548,56 @@ module DDS { Duration_t max_blocking_time; }; - enum DestinationOrderQosPolicyKind { + enum DestinationOrderQosPolicyKind { BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS, BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS }; + +#if (CIAO_DDS4CCM_NDDS==1) + enum DestinationOrderQosPolicyScopeKind { + INSTANCE_SCOPE_DESTINATIONORDER_QOS, + TOPIC_SCOPE_DESTINATIONORDER_QOS + }; +#endif + +#if (CIAO_DDS4CCM_NDDS==1) + enum DataWriterResourceLimitsInstanceReplacementKind { + UNREGISTERED_INSTANCE_REPLACEMENT, + ALIVE_INSTANCE_REPLACEMENT, + DISPOSED_INSTANCE_REPLACEMENT, + ALIVE_THEN_DISPOSED_INSTANCE_REPLACEMENT, + DISPOSED_THEN_ALIVE_INSTANCE_REPLACEMENT, + ALIVE_OR_DISPOSED_INSTANCE_REPLACEMENT + }; +#endif + struct DestinationOrderQosPolicy { DestinationOrderQosPolicyKind kind; +#if (CIAO_DDS4CCM_NDDS==1) + DestinationOrderQosPolicyScopeKind scope; + Duration_t source_timestamp_tolerance; +#endif }; enum HistoryQosPolicyKind { KEEP_LAST_HISTORY_QOS, KEEP_ALL_HISTORY_QOS }; + +#if (CIAO_DDS4CCM_NDDS==1) + enum RefilterQosPolicyKind { + NONE_REFILTER_QOS, + ALL_REFILTER_QOS, + ON_DEMAND_REFILTER_QOS + }; +#endif + struct HistoryQosPolicy { HistoryQosPolicyKind kind; long depth; +#if (CIAO_DDS4CCM_NDDS==1) + RefilterQosPolicyKind refilter; +#endif }; struct ResourceLimitsQosPolicy { @@ -547,6 +619,45 @@ module DDS { boolean autodispose_unregistered_instances; }; +#if (CIAO_DDS4CCM_NDDS==1) + struct DataReaderResourceLimitsQosPolicy { + long max_remote_writers; + long max_remote_writers_per_instance; + long max_samples_per_remote_writer; + long max_infos; + long initial_remote_writers; + long initial_remote_writers_per_instance; + long initial_infos; + long initial_outstanding_reads; + long max_outstanding_reads; + long max_samples_per_read; + boolean disable_fragmentation_support; + long max_fragmented_samples; + long initial_fragmented_samples; + long max_fragmented_samples_per_remote_writer; + long max_fragments_per_sample; + boolean dynamically_allocate_fragmented_samples; + long max_total_instances; + long max_remote_virtual_writers_per_instance; + long initial_remote_virtual_writers_per_instance; + long max_query_condition_filters; + }; +#endif + +#if (CIAO_DDS4CCM_NDDS==1) + struct DataWriterResourceLimitsQosPolicy { + long initial_concurrent_blocking_threads; + long max_concurrent_blocking_threads; + long max_remote_reader_filters; + long initial_batches; + long max_batches; + long cookie_max_length; + DataWriterResourceLimitsInstanceReplacementKind instance_replacement; + boolean replace_empty_instances; + boolean autoregister_instances; + }; +#endif + struct ReaderDataLifecycleQosPolicy { Duration_t autopurge_nowriter_samples_delay; Duration_t autopurge_disposed_samples_delay; @@ -604,6 +715,10 @@ module DDS { OwnershipQosPolicy ownership; OwnershipStrengthQosPolicy ownership_strength; WriterDataLifecycleQosPolicy writer_data_lifecycle; + +#if (CIAO_DDS4CCM_NDDS==1) + DataWriterResourceLimitsQosPolicy writer_resource_limits; +#endif }; struct PublisherQos { @@ -627,6 +742,10 @@ module DDS { OwnershipQosPolicy ownership; TimeBasedFilterQosPolicy time_based_filter; ReaderDataLifecycleQosPolicy reader_data_lifecycle; + +#if (CIAO_DDS4CCM_NDDS==1) + DataReaderResourceLimitsQosPolicy reader_resource_limits; +#endif }; struct SubscriberQos { diff --git a/CIAO/connectors/dds4ccm/impl/ndds/convertors/DataReaderQos.h b/CIAO/connectors/dds4ccm/impl/ndds/convertors/DataReaderQos.h index b2466995a43..1a4cb536c59 100644 --- a/CIAO/connectors/dds4ccm/impl/ndds/convertors/DataReaderQos.h +++ b/CIAO/connectors/dds4ccm/impl/ndds/convertors/DataReaderQos.h @@ -21,6 +21,7 @@ #include "OwnershipQosPolicy.h" #include "TimeBasedFilterQosPolicy.h" #include "ReaderDataLifecycleQosPolicy.h" +#include "DataReaderResourceLimitsQosPolicy.h" #include "dds4ccm/impl/dds4ccm_conf.h" @@ -39,6 +40,7 @@ operator<<= (::DDS::DataReaderQos &ddsqos, const ::DDS_DataReaderQos & qos) ddsqos.ownership <<= qos.ownership; ddsqos.time_based_filter <<= qos.time_based_filter; ddsqos.reader_data_lifecycle <<= qos.reader_data_lifecycle; + ddsqos.reader_resource_limits <<= qos.reader_resource_limits; } inline void @@ -56,6 +58,7 @@ operator<<= (::DDS_DataReaderQos &ddsqos, const ::DDS::DataReaderQos & qos) ddsqos.ownership <<= qos.ownership; ddsqos.time_based_filter <<= qos.time_based_filter; ddsqos.reader_data_lifecycle <<= qos.reader_data_lifecycle; + ddsqos.reader_resource_limits <<= qos.reader_resource_limits; } #endif /* DDS4CCM_DATAREADERQOS_H */ diff --git a/CIAO/connectors/dds4ccm/impl/ndds/convertors/DataReaderResourceLimitsQosPolicy.h b/CIAO/connectors/dds4ccm/impl/ndds/convertors/DataReaderResourceLimitsQosPolicy.h new file mode 100644 index 00000000000..6326f68ada9 --- /dev/null +++ b/CIAO/connectors/dds4ccm/impl/ndds/convertors/DataReaderResourceLimitsQosPolicy.h @@ -0,0 +1,64 @@ +/** + * @author Johnny Willemsen <jwillemsen@remedy.nl> + * + * $Id$ + * + * Wrapper facade for NDDS. + */ + +#ifndef DDS4CCM_DDS_DATAREADERRESOURCELIMITSQOSPOLICY_H +#define DDS4CCM_DDS_DATAREADERRESOURCELIMITSQOSPOLICY_H + +#include "dds4ccm/impl/dds4ccm_conf.h" + +inline void +operator<<= (::DDS::DataReaderResourceLimitsQosPolicy &ddsqos, const ::DDS_DataReaderResourceLimitsQosPolicy & qos) +{ + ddsqos.max_remote_writers = qos.max_remote_writers; + ddsqos.max_remote_writers_per_instance = qos.max_remote_writers_per_instance; + ddsqos.max_samples_per_remote_writer = qos.max_samples_per_remote_writer; + ddsqos.max_infos = qos.max_infos; + ddsqos.initial_remote_writers = qos.initial_remote_writers; + ddsqos.initial_remote_writers_per_instance = qos.initial_remote_writers_per_instance; + ddsqos.initial_infos = qos.initial_infos; + ddsqos.initial_outstanding_reads = qos.initial_outstanding_reads; + ddsqos.max_outstanding_reads = qos.max_outstanding_reads; + ddsqos.max_samples_per_read = qos.max_samples_per_read; + ddsqos.disable_fragmentation_support = qos.disable_fragmentation_support; + ddsqos.max_fragmented_samples = qos.max_fragmented_samples; + ddsqos.initial_fragmented_samples = qos.initial_fragmented_samples; + ddsqos.max_fragmented_samples_per_remote_writer = qos.max_fragmented_samples_per_remote_writer; + ddsqos.max_fragments_per_sample = qos.max_fragments_per_sample; + ddsqos.dynamically_allocate_fragmented_samples = qos.dynamically_allocate_fragmented_samples; + ddsqos.max_total_instances = qos.max_total_instances; + ddsqos.max_remote_virtual_writers_per_instance = qos.max_remote_virtual_writers_per_instance; + ddsqos.initial_remote_virtual_writers_per_instance = qos.initial_remote_virtual_writers_per_instance; + ddsqos.max_query_condition_filters = qos.max_query_condition_filters; +} + +inline void +operator<<= (::DDS_DataReaderResourceLimitsQosPolicy &ddsqos, const ::DDS::DataReaderResourceLimitsQosPolicy & qos) +{ + ddsqos.max_remote_writers = qos.max_remote_writers; + ddsqos.max_remote_writers_per_instance = qos.max_remote_writers_per_instance; + ddsqos.max_samples_per_remote_writer = qos.max_samples_per_remote_writer; + ddsqos.max_infos = qos.max_infos; + ddsqos.initial_remote_writers = qos.initial_remote_writers; + ddsqos.initial_remote_writers_per_instance = qos.initial_remote_writers_per_instance; + ddsqos.initial_infos = qos.initial_infos; + ddsqos.initial_outstanding_reads = qos.initial_outstanding_reads; + ddsqos.max_outstanding_reads = qos.max_outstanding_reads; + ddsqos.max_samples_per_read = qos.max_samples_per_read; + ddsqos.disable_fragmentation_support = qos.disable_fragmentation_support; + ddsqos.max_fragmented_samples = qos.max_fragmented_samples; + ddsqos.initial_fragmented_samples = qos.initial_fragmented_samples; + ddsqos.max_fragmented_samples_per_remote_writer = qos.max_fragmented_samples_per_remote_writer; + ddsqos.max_fragments_per_sample = qos.max_fragments_per_sample; + ddsqos.dynamically_allocate_fragmented_samples = qos.dynamically_allocate_fragmented_samples; + ddsqos.max_total_instances = qos.max_total_instances; + ddsqos.max_remote_virtual_writers_per_instance = qos.max_remote_virtual_writers_per_instance; + ddsqos.initial_remote_virtual_writers_per_instance = qos.initial_remote_virtual_writers_per_instance; + ddsqos.max_query_condition_filters = qos.max_query_condition_filters; +} + +#endif /* DDS4CCM_DDS_DATAREADERRESOURCELIMITSQOSPOLICY_H */ diff --git a/CIAO/connectors/dds4ccm/impl/ndds/convertors/DataWriterQos.h b/CIAO/connectors/dds4ccm/impl/ndds/convertors/DataWriterQos.h index 00d55ca563d..feaa6c77c81 100644 --- a/CIAO/connectors/dds4ccm/impl/ndds/convertors/DataWriterQos.h +++ b/CIAO/connectors/dds4ccm/impl/ndds/convertors/DataWriterQos.h @@ -24,6 +24,7 @@ #include "OwnershipQosPolicy.h" #include "OwnershipStrengthQosPolicy.h" #include "WriterDataLifecycleQosPolicy.h" +#include "DataWriterResourceLimitsQosPolicy.h" #include "dds4ccm/impl/dds4ccm_conf.h" @@ -45,6 +46,7 @@ operator<<= (::DDS::DataWriterQos &ddsqos, const ::DDS_DataWriterQos & qos) ddsqos.ownership <<= qos.ownership; ddsqos.ownership_strength <<= qos.ownership_strength; ddsqos.writer_data_lifecycle <<= qos.writer_data_lifecycle; + ddsqos.writer_resource_limits <<= qos.writer_resource_limits; } inline void @@ -65,6 +67,7 @@ operator<<= (::DDS_DataWriterQos &ddsqos, const ::DDS::DataWriterQos & qos) ddsqos.ownership <<= qos.ownership; ddsqos.ownership_strength <<= qos.ownership_strength; ddsqos.writer_data_lifecycle <<= qos.writer_data_lifecycle; + ddsqos.writer_resource_limits <<= qos.writer_resource_limits; } #endif /* DDS4CCM_DATAWRITERQOS_H */ diff --git a/CIAO/connectors/dds4ccm/impl/ndds/convertors/DataWriterResourceLimitsQosPolicy.h b/CIAO/connectors/dds4ccm/impl/ndds/convertors/DataWriterResourceLimitsQosPolicy.h new file mode 100644 index 00000000000..000ea7fd1af --- /dev/null +++ b/CIAO/connectors/dds4ccm/impl/ndds/convertors/DataWriterResourceLimitsQosPolicy.h @@ -0,0 +1,42 @@ +/** + * @author Johnny Willemsen <jwillemsen@remedy.nl> + * + * $Id$ + * + * Wrapper facade for NDDS. + */ + +#ifndef DDS4CCM_DDS_DATAWRITERRESOURCELIMITSQOSPOLICY_H +#define DDS4CCM_DDS_DATAWRITERRESOURCELIMITSQOSPOLICY_H + +#include "dds4ccm/impl/dds4ccm_conf.h" + +inline void +operator<<= (::DDS::DataWriterResourceLimitsQosPolicy &ddsqos, const ::DDS_DataWriterResourceLimitsQosPolicy & qos) +{ + ddsqos.initial_concurrent_blocking_threads = qos.initial_concurrent_blocking_threads; + ddsqos.max_concurrent_blocking_threads = qos.max_concurrent_blocking_threads; + ddsqos.max_remote_reader_filters = qos.max_remote_reader_filters; + ddsqos.initial_batches = qos.initial_batches; + ddsqos.max_batches = qos.max_batches; + ddsqos.cookie_max_length = qos.cookie_max_length; + ddsqos.instance_replacement = static_cast < ::DDS::DataWriterResourceLimitsInstanceReplacementKind> (qos.instance_replacement); + ddsqos.replace_empty_instances = qos.replace_empty_instances; + ddsqos.autoregister_instances = qos.autoregister_instances; +} + +inline void +operator<<= (::DDS_DataWriterResourceLimitsQosPolicy &ddsqos, const ::DDS::DataWriterResourceLimitsQosPolicy & qos) +{ + ddsqos.initial_concurrent_blocking_threads = qos.initial_concurrent_blocking_threads; + ddsqos.max_concurrent_blocking_threads = qos.max_concurrent_blocking_threads; + ddsqos.max_remote_reader_filters = qos.max_remote_reader_filters; + ddsqos.initial_batches = qos.initial_batches; + ddsqos.max_batches = qos.max_batches; + ddsqos.cookie_max_length = qos.cookie_max_length; + ddsqos.instance_replacement = static_cast < ::DDS_DataWriterResourceLimitsInstanceReplacementKind> (qos.instance_replacement); + ddsqos.replace_empty_instances = qos.replace_empty_instances; + ddsqos.autoregister_instances = qos.autoregister_instances; +} + +#endif /* DDS4CCM_DDS_DATAWRITERRESOURCELIMITSQOSPOLICY_H */ diff --git a/CIAO/connectors/dds4ccm/impl/ndds/convertors/DestinationOrderQosPolicy.h b/CIAO/connectors/dds4ccm/impl/ndds/convertors/DestinationOrderQosPolicy.h index 46593a6d096..e6caa2b16ae 100644 --- a/CIAO/connectors/dds4ccm/impl/ndds/convertors/DestinationOrderQosPolicy.h +++ b/CIAO/connectors/dds4ccm/impl/ndds/convertors/DestinationOrderQosPolicy.h @@ -16,12 +16,16 @@ inline void operator<<= (::DDS::DestinationOrderQosPolicy &ddsqos, const ::DDS_DestinationOrderQosPolicy & qos) { ddsqos.kind = static_cast < ::DDS::DestinationOrderQosPolicyKind> (qos.kind); + ddsqos.scope = static_cast < ::DDS::DestinationOrderQosPolicyScopeKind> (qos.scope); + ddsqos.source_timestamp_tolerance <<= qos.source_timestamp_tolerance; } inline void operator<<= (::DDS_DestinationOrderQosPolicy &ddsqos, const ::DDS::DestinationOrderQosPolicy & qos) { ddsqos.kind = static_cast < ::DDS_DestinationOrderQosPolicyKind> (qos.kind); + ddsqos.scope = static_cast < ::DDS_DestinationOrderQosPolicyScopeKind> (qos.scope); + ddsqos.source_timestamp_tolerance <<= qos.source_timestamp_tolerance; } #endif /* DDS4CCM_DESTINATIONORDERQOSPOLICY_H */ diff --git a/CIAO/connectors/dds4ccm/impl/ndds/convertors/HistoryQosPolicy.h b/CIAO/connectors/dds4ccm/impl/ndds/convertors/HistoryQosPolicy.h index b77fcafda79..4719ef527a9 100644 --- a/CIAO/connectors/dds4ccm/impl/ndds/convertors/HistoryQosPolicy.h +++ b/CIAO/connectors/dds4ccm/impl/ndds/convertors/HistoryQosPolicy.h @@ -16,6 +16,7 @@ operator<<= (::DDS::HistoryQosPolicy &ddsqos, const ::DDS_HistoryQosPolicy & qos { ddsqos.kind = static_cast < ::DDS::HistoryQosPolicyKind> (qos.kind); ddsqos.depth = qos.depth; + ddsqos.refilter = static_cast < ::DDS::RefilterQosPolicyKind> (qos.refilter); } inline void @@ -23,6 +24,7 @@ operator<<= (::DDS_HistoryQosPolicy &ddsqos, const ::DDS::HistoryQosPolicy & qos { ddsqos.kind = static_cast < ::DDS_HistoryQosPolicyKind> (qos.kind); ddsqos.depth = qos.depth; + ddsqos.refilter = static_cast < ::DDS_RefilterQosPolicyKind> (qos.refilter); } #endif /* DDS4CCM_HISTORYQOSPOLICY_H */ |