OpenDDS  Snapshot(2021/12/03-20:38)
Functions
OpenDDS::RTPS::ParameterListConverter Namespace Reference

Functions

bool to_param_list (const DDS::ParticipantBuiltinTopicData &pbtd, ParameterList &param_list)
 
bool from_param_list (const ParameterList &param_list, DDS::ParticipantBuiltinTopicData &pbtd)
 
bool to_param_list (const DDS::Security::ParticipantBuiltinTopicData &pbtd, ParameterList &param_list)
 
bool from_param_list (const ParameterList &param_list, DDS::Security::ParticipantBuiltinTopicData &pbtd)
 
bool to_param_list (const DDS::Security::ParticipantBuiltinTopicDataSecure &pbtds, ParameterList &param_list)
 
bool from_param_list (const ParameterList &param_list, DDS::Security::ParticipantBuiltinTopicDataSecure &pbtds)
 
OpenDDS_Rtps_Export bool to_param_list (const ParticipantProxy_t &proxy, ParameterList &param_list)
 
bool from_param_list (const ParameterList &param_list, ParticipantProxy_t &proxy)
 
OpenDDS_Rtps_Export bool to_param_list (const Duration_t &duration, ParameterList &param_list)
 
OpenDDS_Rtps_Export bool from_param_list (const ParameterList &param_list, Duration_t &duration)
 
OpenDDS_Rtps_Export bool to_param_list (const SPDPdiscoveredParticipantData &participant_data, ParameterList &param_list)
 
bool from_param_list (const ParameterList &param_list, SPDPdiscoveredParticipantData &participant_data)
 
bool to_param_list (const OpenDDS::Security::SPDPdiscoveredParticipantData &participant_data, ParameterList &param_list)
 
bool from_param_list (const ParameterList &param_list, OpenDDS::Security::SPDPdiscoveredParticipantData &participant_data)
 
void add_DataRepresentationQos (ParameterList &param_list, const DDS::DataRepresentationIdSeq &ids, bool reader)
 
bool to_param_list (const DCPS::DiscoveredWriterData &writer_data, ParameterList &param_list, bool use_xtypes, const XTypes::TypeInformation &type_info, bool map)
 
bool from_param_list (const ParameterList &param_list, DCPS::DiscoveredWriterData &writer_data, bool use_xtypes, XTypes::TypeInformation &type_info)
 
bool to_param_list (const DCPS::DiscoveredReaderData &reader_data, ParameterList &param_list, bool use_xtypes, const XTypes::TypeInformation &type_info, bool map)
 
bool from_param_list (const ParameterList &param_list, DCPS::DiscoveredReaderData &reader_data, bool use_xtypes, XTypes::TypeInformation &type_info)
 
bool to_param_list (const DDS::Security::EndpointSecurityInfo &info, ParameterList &param_list)
 
bool from_param_list (const ParameterList &param_list, DDS::Security::EndpointSecurityInfo &info)
 
bool to_param_list (const DDS::Security::DataTags &tags, ParameterList &param_list)
 
bool from_param_list (const ParameterList &param_list, DDS::Security::DataTags &tags)
 
bool to_param_list (const DiscoveredPublication_SecurityWrapper &wrapper, ParameterList &param_list, bool use_xtypes, const XTypes::TypeInformation &type_info, bool map)
 
bool from_param_list (const ParameterList &param_list, DiscoveredPublication_SecurityWrapper &wrapper, bool use_xtypes, XTypes::TypeInformation &type_info)
 
bool to_param_list (const DiscoveredSubscription_SecurityWrapper &wrapper, ParameterList &param_list, bool use_xtypes, const XTypes::TypeInformation &type_info, bool map)
 
bool from_param_list (const ParameterList &param_list, DiscoveredSubscription_SecurityWrapper &wrapper, bool use_xtypes, XTypes::TypeInformation &type_info)
 
bool to_param_list (const ICE::AgentInfoMap &ai_map, ParameterList &param_list)
 
bool from_param_list (const ParameterList &param_list, ICE::AgentInfoMap &ai_map)
 

Function Documentation

◆ add_DataRepresentationQos()

OpenDDS_Rtps_Export void OpenDDS::RTPS::ParameterListConverter::add_DataRepresentationQos ( ParameterList param_list,
const DDS::DataRepresentationIdSeq ids,
bool  reader 
)

Definition at line 831 of file ParameterListConverter.cpp.

References OpenDDS::DCPS::get_effective_data_rep_qos(), OpenDDS::RTPS::Parameter::representation, DDS::DataRepresentationQosPolicy::value, and DDS::XCDR_DATA_REPRESENTATION.

Referenced by to_param_list().

832 {
834  dr_qos.value = DCPS::get_effective_data_rep_qos(ids, reader);
835  if (dr_qos.value.length() != 1 || dr_qos.value[0] != DDS::XCDR_DATA_REPRESENTATION) {
836  Parameter param;
837  param.representation(dr_qos);
838  add_param(param_list, param);
839  }
840 }
DataRepresentationIdSeq value
DDS::DataRepresentationIdSeq get_effective_data_rep_qos(const DDS::DataRepresentationIdSeq &qos, bool reader)
Definition: DCPS_Utils.cpp:473
const DataRepresentationId_t XCDR_DATA_REPRESENTATION

◆ from_param_list() [1/14]

OpenDDS_Rtps_Export bool OpenDDS::RTPS::ParameterListConverter::from_param_list ( const ParameterList param_list,
DDS::ParticipantBuiltinTopicData pbtd 
)

Definition at line 383 of file ParameterListConverter.cpp.

References OpenDDS::RTPS::PID_USER_DATA, OpenDDS::RTPS::PIDMASK_INCOMPATIBLE, and OpenDDS::RTPS::Parameter::user_data.

Referenced by OpenDDS::RTPS::Spdp::data_received(), OpenDDS::RTPS::Sedp::DiscoveryReader::data_received_i(), from_param_list(), OpenDDS::RTPS::ip_in_AgentInfo(), and OpenDDS::RTPS::Spdp::process_participant_ice().

385 {
386  pbtd.user_data.value.length(0);
387 
388  CORBA::ULong length = param_list.length();
389  for (CORBA::ULong i = 0; i < length; ++i) {
390  const Parameter& param = param_list[i];
391  switch (param._d()) {
392  case PID_USER_DATA:
393  pbtd.user_data = param.user_data();
394  break;
395  default:
396  if (param._d() & PIDMASK_INCOMPATIBLE) {
397  return false;
398  }
399  }
400  }
401 
402  return true;
403 }
ACE_CDR::ULong ULong
const ParameterId_t PID_USER_DATA
Definition: RtpsCore.idl:253
const ParameterId_t PIDMASK_INCOMPATIBLE
Definition: RtpsCore.idl:312

◆ from_param_list() [2/14]

OpenDDS_Rtps_Export bool OpenDDS::RTPS::ParameterListConverter::from_param_list ( const ParameterList param_list,
DDS::Security::ParticipantBuiltinTopicData pbtd 
)

Definition at line 436 of file ParameterListConverter.cpp.

References DDS::Security::ParticipantBuiltinTopicData::base, DDS::Security::ParticipantBuiltinTopicData::extended_builtin_endpoints, OpenDDS::RTPS::Parameter::extended_builtin_endpoints, from_param_list(), DDS::Security::ParticipantBuiltinTopicData::identity_token, OpenDDS::RTPS::Parameter::identity_token, DDS::Security::ParticipantSecurityInfo::participant_security_attributes, OpenDDS::RTPS::Parameter::participant_security_info, DDS::Security::ParticipantBuiltinTopicData::permissions_token, OpenDDS::RTPS::Parameter::permissions_token, DDS::Security::PID_EXTENDED_BUILTIN_ENDPOINTS, DDS::Security::PID_IDENTITY_TOKEN, DDS::Security::PID_PARTICIPANT_SECURITY_INFO, DDS::Security::PID_PERMISSIONS_TOKEN, OpenDDS::RTPS::PID_PROPERTY_LIST, OpenDDS::RTPS::PIDMASK_INCOMPATIBLE, DDS::Security::ParticipantSecurityInfo::plugin_participant_security_attributes, DDS::Security::ParticipantBuiltinTopicData::property, OpenDDS::RTPS::Parameter::property, and DDS::Security::ParticipantBuiltinTopicData::security_info.

438 {
439  if (!from_param_list(param_list, pbtd.base))
440  return false;
441 
444 
445  CORBA::ULong length = param_list.length();
446  for (CORBA::ULong i = 0; i < length; ++i) {
447  const Parameter& param = param_list[i];
448  switch (param._d()) {
450  pbtd.identity_token = param.identity_token();
451  break;
453  pbtd.permissions_token = param.permissions_token();
454  break;
455  case PID_PROPERTY_LIST:
456  pbtd.property = param.property();
457  break;
459  pbtd.security_info = param.participant_security_info();
460  break;
462  pbtd.extended_builtin_endpoints = param.extended_builtin_endpoints();
463  break;
464  default:
465  if (param._d() & PIDMASK_INCOMPATIBLE) {
466  return false;
467  }
468  }
469  }
470 
471  return true;
472 }
const ParameterId_t PID_PERMISSIONS_TOKEN
DDS::ParticipantBuiltinTopicData base
const ParameterId_t PID_IDENTITY_TOKEN
const ParameterId_t PID_PARTICIPANT_SECURITY_INFO
bool from_param_list(const ParameterList &param_list, ICE::AgentInfoMap &ai_map)
ACE_CDR::ULong ULong
const ParameterId_t PID_EXTENDED_BUILTIN_ENDPOINTS
const ParameterId_t PID_PROPERTY_LIST
Definition: RtpsCore.idl:290
const ParameterId_t PIDMASK_INCOMPATIBLE
Definition: RtpsCore.idl:312
PluginParticipantSecurityAttributesMask plugin_participant_security_attributes
ExtendedBuiltinEndpointSet_t extended_builtin_endpoints
ParticipantSecurityAttributesMask participant_security_attributes

◆ from_param_list() [3/14]

OpenDDS_Rtps_Export bool OpenDDS::RTPS::ParameterListConverter::from_param_list ( const ParameterList param_list,
DDS::Security::ParticipantBuiltinTopicDataSecure pbtds 
)

Definition at line 486 of file ParameterListConverter.cpp.

References DDS::Security::ParticipantBuiltinTopicDataSecure::base, from_param_list(), DDS::Security::ParticipantBuiltinTopicDataSecure::identity_status_token, OpenDDS::RTPS::Parameter::identity_status_token, OpenDDS_Rtps_Export, DDS::Security::PID_IDENTITY_STATUS_TOKEN, and OpenDDS::RTPS::PIDMASK_INCOMPATIBLE.

488 {
489  if (!from_param_list(param_list, pbtds.base))
490  return false;
491 
492  CORBA::ULong length = param_list.length();
493  for (CORBA::ULong i = 0; i < length; ++i) {
494  const Parameter& param = param_list[i];
495  switch (param._d()) {
497  pbtds.identity_status_token = param.identity_status_token();
498  break;
499  default:
500  if (param._d() & PIDMASK_INCOMPATIBLE) {
501  return false;
502  }
503  }
504  }
505 
506  return true;
507 }
const ParameterId_t PID_IDENTITY_STATUS_TOKEN
bool from_param_list(const ParameterList &param_list, ICE::AgentInfoMap &ai_map)
ACE_CDR::ULong ULong
const ParameterId_t PIDMASK_INCOMPATIBLE
Definition: RtpsCore.idl:312

◆ from_param_list() [4/14]

OpenDDS_Rtps_Export bool OpenDDS::RTPS::ParameterListConverter::from_param_list ( const ParameterList param_list,
ParticipantProxy_t proxy 
)

Definition at line 608 of file ParameterListConverter.cpp.

References OpenDDS::RTPS::ParticipantProxy_t::availableBuiltinEndpoints, OpenDDS::RTPS::ParticipantProxy_t::availableExtendedBuiltinEndpoints, OpenDDS::RTPS::OpenDDSParticipantFlags_t::bits, OpenDDS::RTPS::Parameter::builtin_endpoints, OpenDDS::RTPS::Parameter::builtinEndpointQos, OpenDDS::RTPS::ParticipantProxy_t::builtinEndpointQos, OpenDDS::RTPS::Parameter::count, OpenDDS::RTPS::ParticipantProxy_t::defaultMulticastLocatorList, OpenDDS::RTPS::ParticipantProxy_t::defaultUnicastLocatorList, OpenDDS::RTPS::Parameter::domainId, OpenDDS::RTPS::ParticipantProxy_t::domainId, OpenDDS::RTPS::Parameter::expects_inline_qos, OpenDDS::RTPS::ParticipantProxy_t::expectsInlineQos, OpenDDS::RTPS::Parameter::extended_builtin_endpoints, OpenDDS::RTPS::Parameter::guid, OpenDDS::DCPS::GUID_t::guidPrefix, OpenDDS::RTPS::ParticipantProxy_t::guidPrefix, OpenDDS::RTPS::Parameter::locator, OpenDDS::RTPS::ParticipantProxy_t::manualLivelinessCount, ACE_OS::memcpy(), OpenDDS::RTPS::ParticipantProxy_t::metatrafficMulticastLocatorList, OpenDDS::RTPS::ParticipantProxy_t::metatrafficUnicastLocatorList, OpenDDS::RTPS::ParticipantProxy_t::opendds_participant_flags, OpenDDS_Rtps_Export, OpenDDS::RTPS::Parameter::opendds_rtps_relay_application_participant, OpenDDS::RTPS::ParticipantProxy_t::opendds_rtps_relay_application_participant, OpenDDS::RTPS::Parameter::participant_builtin_endpoints, OpenDDS::RTPS::Parameter::participant_flags, OpenDDS::RTPS::PID_BUILTIN_ENDPOINT_QOS, OpenDDS::RTPS::PID_BUILTIN_ENDPOINT_SET, OpenDDS::RTPS::PID_DEFAULT_MULTICAST_LOCATOR, OpenDDS::RTPS::PID_DEFAULT_UNICAST_LOCATOR, OpenDDS::RTPS::PID_DOMAIN_ID, OpenDDS::RTPS::PID_EXPECTS_INLINE_QOS, DDS::Security::PID_EXTENDED_BUILTIN_ENDPOINTS, OpenDDS::RTPS::PID_METATRAFFIC_MULTICAST_LOCATOR, OpenDDS::RTPS::PID_METATRAFFIC_UNICAST_LOCATOR, OpenDDS::RTPS::PID_OPENDDS_PARTICIPANT_FLAGS, OpenDDS::RTPS::PID_OPENDDS_RTPS_RELAY_APPLICATION_PARTICIPANT, OpenDDS::RTPS::PID_PAD, OpenDDS::RTPS::PID_PARTICIPANT_BUILTIN_ENDPOINTS, OpenDDS::RTPS::PID_PARTICIPANT_GUID, OpenDDS::RTPS::PID_PARTICIPANT_MANUAL_LIVELINESS_COUNT, OpenDDS::RTPS::PID_PROPERTY_LIST, OpenDDS::RTPS::PID_PROTOCOL_VERSION, OpenDDS::RTPS::PID_SENTINEL, OpenDDS::RTPS::PID_VENDORID, OpenDDS::RTPS::PIDMASK_INCOMPATIBLE, OpenDDS::RTPS::Parameter::property, OpenDDS::RTPS::ParticipantProxy_t::property, OpenDDS::RTPS::ParticipantProxy_t::protocolVersion, OpenDDS::RTPS::Count_t::value, OpenDDS::RTPS::Parameter::vendor, OpenDDS::RTPS::VendorId_t::vendorId, OpenDDS::RTPS::ParticipantProxy_t::vendorId, and OpenDDS::RTPS::Parameter::version.

610 {
611  // Start by setting defaults
612  proxy.availableBuiltinEndpoints = 0;
613 #ifdef OPENDDS_SECURITY
614  proxy.availableExtendedBuiltinEndpoints = 0;
615 #endif
616  proxy.expectsInlineQos = false;
617  proxy.opendds_participant_flags.bits = 0;
618  proxy.opendds_rtps_relay_application_participant = false;
619 
620  CORBA::ULong length = param_list.length();
621  for (CORBA::ULong i = 0; i < length; ++i) {
622  const Parameter& param = param_list[i];
623  switch (param._d()) {
625  proxy.builtinEndpointQos = param.builtinEndpointQos();
626  break;
627  case PID_DOMAIN_ID:
628  proxy.domainId = param.domainId();
629  break;
631  proxy.protocolVersion = param.version();
632  break;
634  ACE_OS::memcpy(proxy.guidPrefix,
635  param.guid().guidPrefix, sizeof(GuidPrefix_t));
636  break;
637  case PID_VENDORID:
638  ACE_OS::memcpy(proxy.vendorId.vendorId,
639  param.vendor().vendorId, sizeof(OctetArray2));
640  break;
642  proxy.expectsInlineQos =
643  param.expects_inline_qos();
644  break;
646  proxy.availableBuiltinEndpoints =
647  param.participant_builtin_endpoints();
648  break;
650  // Interoperability note:
651  // OpenSplice uses this in place of PID_PARTICIPANT_BUILTIN_ENDPOINTS
652  // Table 9.13 indicates that PID_PARTICIPANT_BUILTIN_ENDPOINTS should be
653  // used to represent ParticipantProxy::availableBuiltinEndpoints
654  proxy.availableBuiltinEndpoints =
655  param.builtin_endpoints();
656  break;
657 #ifdef OPENDDS_SECURITY
659  proxy.availableExtendedBuiltinEndpoints =
660  param.extended_builtin_endpoints();
661  break;
662 #endif
664  append_locator(
665  proxy.metatrafficUnicastLocatorList,
666  param.locator());
667  break;
669  append_locator(
670  proxy.metatrafficMulticastLocatorList,
671  param.locator());
672  break;
674  append_locator(
675  proxy.defaultUnicastLocatorList,
676  param.locator());
677  break;
679  append_locator(
680  proxy.defaultMulticastLocatorList,
681  param.locator());
682  break;
684  proxy.manualLivelinessCount.value =
685  param.count().value;
686  break;
687  case PID_PROPERTY_LIST:
688  proxy.property = param.property();
689  break;
691  proxy.opendds_participant_flags = param.participant_flags();
692  break;
694  proxy.opendds_rtps_relay_application_participant = param.opendds_rtps_relay_application_participant();
695  break;
696  case PID_SENTINEL:
697  case PID_PAD:
698  // ignore
699  break;
700  default:
701  if (param._d() & PIDMASK_INCOMPATIBLE) {
702  return false;
703  }
704  }
705  }
706 
707  return true;
708 }
const ParameterId_t PID_OPENDDS_PARTICIPANT_FLAGS
Definition: RtpsCore.idl:341
const ParameterId_t PID_SENTINEL
Definition: RtpsCore.idl:252
const ParameterId_t PID_PARTICIPANT_MANUAL_LIVELINESS_COUNT
Definition: RtpsCore.idl:283
const ParameterId_t PID_DEFAULT_UNICAST_LOCATOR
Definition: RtpsCore.idl:278
void * memcpy(void *t, const void *s, size_t len)
octet OctetArray2[2]
Definition: RtpsCore.idl:22
const ParameterId_t PID_OPENDDS_RTPS_RELAY_APPLICATION_PARTICIPANT
Definition: RtpsCore.idl:342
const ParameterId_t PID_PARTICIPANT_BUILTIN_ENDPOINTS
Definition: RtpsCore.idl:284
const ParameterId_t PID_PAD
Definition: RtpsCore.idl:251
ACE_CDR::ULong ULong
const ParameterId_t PID_PARTICIPANT_GUID
Definition: RtpsCore.idl:287
const ParameterId_t PID_EXTENDED_BUILTIN_ENDPOINTS
const ParameterId_t PID_BUILTIN_ENDPOINT_QOS
Definition: RtpsCore.idl:317
const ParameterId_t PID_PROPERTY_LIST
Definition: RtpsCore.idl:290
const ParameterId_t PID_DOMAIN_ID
Definition: RtpsCore.idl:314
const ParameterId_t PID_METATRAFFIC_MULTICAST_LOCATOR
Definition: RtpsCore.idl:281
const ParameterId_t PID_DEFAULT_MULTICAST_LOCATOR
Definition: RtpsCore.idl:279
const ParameterId_t PID_VENDORID
Definition: RtpsCore.idl:275
const ParameterId_t PIDMASK_INCOMPATIBLE
Definition: RtpsCore.idl:312
octet GuidPrefix_t[12]
Definition: DdsDcpsGuid.idl:19
const ParameterId_t PID_BUILTIN_ENDPOINT_SET
Definition: RtpsCore.idl:289
const ParameterId_t PID_METATRAFFIC_UNICAST_LOCATOR
Definition: RtpsCore.idl:280
const ParameterId_t PID_EXPECTS_INLINE_QOS
Definition: RtpsCore.idl:282
const ParameterId_t PID_PROTOCOL_VERSION
Definition: RtpsCore.idl:274

◆ from_param_list() [5/14]

OpenDDS_Rtps_Export bool OpenDDS::RTPS::ParameterListConverter::from_param_list ( const ParameterList param_list,
Duration_t duration 
)

Definition at line 727 of file ParameterListConverter.cpp.

References OpenDDS::RTPS::Parameter::duration, OpenDDS::RTPS::Duration_t::fraction, OpenDDS_Rtps_Export, OpenDDS::RTPS::PID_PARTICIPANT_LEASE_DURATION, OpenDDS::RTPS::PIDMASK_INCOMPATIBLE, and OpenDDS::RTPS::Duration_t::seconds.

729 {
730  duration.seconds = 100;
731  duration.fraction = 0;
732 
733  CORBA::ULong length = param_list.length();
734  for (CORBA::ULong i = 0; i < length; ++i) {
735  const Parameter& param = param_list[i];
736  switch (param._d()) {
738  duration = param.duration();
739  break;
740  default:
741  if (param._d() & PIDMASK_INCOMPATIBLE) {
742  return false;
743  }
744  }
745  }
746  return true;
747 }
const ParameterId_t PID_PARTICIPANT_LEASE_DURATION
Definition: RtpsCore.idl:285
ACE_CDR::ULong ULong
const ParameterId_t PIDMASK_INCOMPATIBLE
Definition: RtpsCore.idl:312

◆ from_param_list() [6/14]

OpenDDS_Rtps_Export bool OpenDDS::RTPS::ParameterListConverter::from_param_list ( const ParameterList param_list,
SPDPdiscoveredParticipantData participant_data 
)

Definition at line 762 of file ParameterListConverter.cpp.

References OpenDDS::RTPS::SPDPdiscoveredParticipantData::ddsParticipantData, from_param_list(), OpenDDS::RTPS::SPDPdiscoveredParticipantData::leaseDuration, and OpenDDS::RTPS::SPDPdiscoveredParticipantData::participantProxy.

764 {
765  bool result = from_param_list(param_list, participant_data.ddsParticipantData);
766  if (result) {
767  result = from_param_list(param_list, participant_data.participantProxy);
768  if (result) {
769  result = from_param_list(param_list, participant_data.leaseDuration);
770  }
771  }
772 
773  return result;
774 }
bool from_param_list(const ParameterList &param_list, ICE::AgentInfoMap &ai_map)

◆ from_param_list() [7/14]

OpenDDS_Rtps_Export bool OpenDDS::RTPS::ParameterListConverter::from_param_list ( const ParameterList param_list,
OpenDDS::Security::SPDPdiscoveredParticipantData participant_data 
)

Definition at line 797 of file ParameterListConverter.cpp.

References DDS::Security::ParticipantBuiltinTopicData::base, DDS::Security::ParticipantBuiltinTopicDataSecure::base, OpenDDS::Security::SPDPdiscoveredParticipantData::dataKind, OpenDDS::Security::SPDPdiscoveredParticipantData::ddsParticipantDataSecure, OpenDDS::Security::DPDK_ENHANCED, OpenDDS::Security::DPDK_SECURE, from_param_list(), OpenDDS::Security::SPDPdiscoveredParticipantData::leaseDuration, and OpenDDS::Security::SPDPdiscoveredParticipantData::participantProxy.

799 {
800  bool result = false;
801 
802  participant_data.dataKind = find_data_kind(param_list);
803  switch (participant_data.dataKind) {
805  result = from_param_list(param_list, participant_data.ddsParticipantDataSecure);
806  break;
807  }
809  result = from_param_list(param_list, participant_data.ddsParticipantDataSecure.base);
810  break;
811  }
812  default: {
813  result = from_param_list(param_list, participant_data.ddsParticipantDataSecure.base.base);
814  break;
815  }
816  }
817 
818  if (result) {
819  result = from_param_list(param_list, participant_data.participantProxy);
820  if (result) {
821  result = from_param_list(param_list, participant_data.leaseDuration);
822  }
823  }
824 
825  return result;
826 }
DDS::ParticipantBuiltinTopicData base
bool from_param_list(const ParameterList &param_list, ICE::AgentInfoMap &ai_map)
OpenDDS::RTPS::ParticipantProxy_t participantProxy
DDS::Security::ParticipantBuiltinTopicDataSecure ddsParticipantDataSecure

◆ from_param_list() [8/14]

OpenDDS_Rtps_Export bool OpenDDS::RTPS::ParameterListConverter::from_param_list ( const ParameterList param_list,
DCPS::DiscoveredWriterData writer_data,
bool  use_xtypes,
XTypes::TypeInformation type_info 
)

Definition at line 1005 of file ParameterListConverter.cpp.

References OpenDDS::DCPS::WriterProxy_t::allLocators, OpenDDS::RTPS::BEST_EFFORT, DDS::BEST_EFFORT_RELIABILITY_QOS, OpenDDS::DCPS::DiscoveredWriterData::ddsPublicationData, OpenDDS::RTPS::Parameter::deadline, OpenDDS::RTPS::Parameter::destination_order, OpenDDS::RTPS::Parameter::durability, OpenDDS::RTPS::Parameter::durability_service, OpenDDS::RTPS::Parameter::group_data, OpenDDS::RTPS::Parameter::guid, OpenDDS::RTPS::ReliabilityQosPolicyRtps::kind, OpenDDS::RTPS::Parameter::latency_budget, OpenDDS::RTPS::Parameter::lifespan, OpenDDS::RTPS::Parameter::liveliness, OpenDDS::RTPS::Parameter::locator, OpenDDS::RTPS::ReliabilityQosPolicyRtps::max_blocking_time, OpenDDS::RTPS::Parameter::opendds_locator, OpenDDS::RTPS::Parameter::ownership, OpenDDS::RTPS::Parameter::ownership_strength, OpenDDS::RTPS::Parameter::partition, OpenDDS::RTPS::PID_DATA_REPRESENTATION, OpenDDS::RTPS::PID_DEADLINE, OpenDDS::RTPS::PID_DESTINATION_ORDER, OpenDDS::RTPS::PID_DURABILITY, OpenDDS::RTPS::PID_DURABILITY_SERVICE, OpenDDS::RTPS::PID_ENDPOINT_GUID, OpenDDS::RTPS::PID_GROUP_DATA, OpenDDS::RTPS::PID_LATENCY_BUDGET, OpenDDS::RTPS::PID_LIFESPAN, OpenDDS::RTPS::PID_LIVELINESS, OpenDDS::RTPS::PID_MULTICAST_LOCATOR, OpenDDS::RTPS::PID_OPENDDS_LOCATOR, OpenDDS::RTPS::PID_OWNERSHIP, OpenDDS::RTPS::PID_OWNERSHIP_STRENGTH, OpenDDS::RTPS::PID_PAD, OpenDDS::RTPS::PID_PARTITION, OpenDDS::RTPS::PID_PRESENTATION, OpenDDS::RTPS::PID_RELIABILITY, OpenDDS::RTPS::PID_SENTINEL, OpenDDS::RTPS::PID_TOPIC_DATA, OpenDDS::RTPS::PID_TOPIC_NAME, OpenDDS::RTPS::PID_TYPE_NAME, OpenDDS::RTPS::PID_UNICAST_LOCATOR, OpenDDS::RTPS::PID_USER_DATA, OpenDDS::RTPS::PID_XTYPES_TYPE_INFORMATION, OpenDDS::RTPS::PIDMASK_INCOMPATIBLE, OpenDDS::RTPS::Parameter::presentation, OpenDDS::RTPS::Parameter::reliability, DDS::RELIABLE_RELIABILITY_QOS, OpenDDS::DCPS::WriterProxy_t::remoteWriterGuid, OpenDDS::RTPS::Parameter::representation, OpenDDS::RTPS::Parameter::string_data, TheServiceParticipant, OpenDDS::RTPS::Parameter::topic_data, OpenDDS::RTPS::Parameter::user_data, OpenDDS::RTPS::ReliabilityKind_t::value, DDS::DataRepresentationQosPolicy::value, OpenDDS::DCPS::DiscoveredWriterData::writerProxy, and DDS::XCDR_DATA_REPRESENTATION.

1009 {
1010  // Collect the rtps_udp locators before appending them to allLocators
1011  DCPS::LocatorSeq rtps_udp_locators;
1012 
1013  // Start by setting defaults
1014  writer_data.ddsPublicationData.topic_name = "";
1015  writer_data.ddsPublicationData.type_name = "";
1016  writer_data.ddsPublicationData.durability =
1017  TheServiceParticipant->initial_DurabilityQosPolicy();
1018  writer_data.ddsPublicationData.durability_service =
1019  TheServiceParticipant->initial_DurabilityServiceQosPolicy();
1020  writer_data.ddsPublicationData.deadline =
1021  TheServiceParticipant->initial_DeadlineQosPolicy();
1022  writer_data.ddsPublicationData.latency_budget =
1023  TheServiceParticipant->initial_LatencyBudgetQosPolicy();
1024  writer_data.ddsPublicationData.liveliness =
1025  TheServiceParticipant->initial_LivelinessQosPolicy();
1026  writer_data.ddsPublicationData.reliability =
1027  TheServiceParticipant->initial_DataWriterQos().reliability;
1028  writer_data.ddsPublicationData.lifespan =
1029  TheServiceParticipant->initial_LifespanQosPolicy();
1030  writer_data.ddsPublicationData.user_data =
1031  TheServiceParticipant->initial_UserDataQosPolicy();
1032  writer_data.ddsPublicationData.ownership =
1033  TheServiceParticipant->initial_OwnershipQosPolicy();
1034 #ifdef OPENDDS_NO_OWNERSHIP_KIND_EXCLUSIVE
1035  writer_data.ddsPublicationData.ownership_strength.value = 0;
1036 #else
1037  writer_data.ddsPublicationData.ownership_strength =
1038  TheServiceParticipant->initial_OwnershipStrengthQosPolicy();
1039 #endif
1040  writer_data.ddsPublicationData.destination_order =
1041  TheServiceParticipant->initial_DestinationOrderQosPolicy();
1042  writer_data.ddsPublicationData.presentation =
1043  TheServiceParticipant->initial_PresentationQosPolicy();
1044  writer_data.ddsPublicationData.partition =
1045  TheServiceParticipant->initial_PartitionQosPolicy();
1046  writer_data.ddsPublicationData.topic_data =
1047  TheServiceParticipant->initial_TopicDataQosPolicy();
1048  writer_data.ddsPublicationData.group_data =
1049  TheServiceParticipant->initial_GroupDataQosPolicy();
1050  writer_data.ddsPublicationData.representation.value.length(1);
1051  writer_data.ddsPublicationData.representation.value[0] = DDS::XCDR_DATA_REPRESENTATION;
1052 
1053  CORBA::ULong length = param_list.length();
1054  for (CORBA::ULong i = 0; i < length; ++i) {
1055  const Parameter& param = param_list[i];
1056  switch (param._d()) {
1057  case PID_TOPIC_NAME:
1058  writer_data.ddsPublicationData.topic_name = param.string_data();
1059  break;
1060  case PID_TYPE_NAME:
1061  writer_data.ddsPublicationData.type_name = param.string_data();
1062  break;
1063  case PID_DURABILITY:
1064  writer_data.ddsPublicationData.durability = param.durability();
1065  break;
1067  writer_data.ddsPublicationData.durability_service =
1068  param.durability_service();
1069  // Interoperability note: calling normalize() shouldn't be required
1070  normalize(writer_data.ddsPublicationData.durability_service.service_cleanup_delay);
1071  break;
1072  case PID_DEADLINE:
1073  writer_data.ddsPublicationData.deadline = param.deadline();
1074  // Interoperability note: calling normalize() shouldn't be required
1075  normalize(writer_data.ddsPublicationData.deadline.period);
1076  break;
1077  case PID_LATENCY_BUDGET:
1078  writer_data.ddsPublicationData.latency_budget = param.latency_budget();
1079  // Interoperability note: calling normalize() shouldn't be required
1080  normalize(writer_data.ddsPublicationData.latency_budget.duration);
1081  break;
1082  case PID_LIVELINESS:
1083  writer_data.ddsPublicationData.liveliness = param.liveliness();
1084  // Interoperability note: calling normalize() shouldn't be required
1085  normalize(writer_data.ddsPublicationData.liveliness.lease_duration);
1086  break;
1087  case PID_RELIABILITY:
1088  writer_data.ddsPublicationData.reliability.max_blocking_time = param.reliability().max_blocking_time;
1089  // Interoperability note:
1090  // Spec creators for RTPS have reliability indexed at 1
1091  {
1092  if (param.reliability().kind.value == RTPS::BEST_EFFORT) {
1093  writer_data.ddsPublicationData.reliability.kind = DDS::BEST_EFFORT_RELIABILITY_QOS;
1094  } else { // default to RELIABLE for writers
1095  writer_data.ddsPublicationData.reliability.kind = DDS::RELIABLE_RELIABILITY_QOS;
1096  }
1097  }
1098  normalize(writer_data.ddsPublicationData.reliability.max_blocking_time);
1099  break;
1100  case PID_LIFESPAN:
1101  writer_data.ddsPublicationData.lifespan = param.lifespan();
1102  // Interoperability note: calling normalize() shouldn't be required
1103  normalize(writer_data.ddsPublicationData.lifespan.duration);
1104  break;
1105  case PID_USER_DATA:
1106  writer_data.ddsPublicationData.user_data = param.user_data();
1107  break;
1108  case PID_OWNERSHIP:
1109  writer_data.ddsPublicationData.ownership = param.ownership();
1110  break;
1112  writer_data.ddsPublicationData.ownership_strength = param.ownership_strength();
1113  break;
1114  case PID_DESTINATION_ORDER:
1115  writer_data.ddsPublicationData.destination_order = param.destination_order();
1116  break;
1117  case PID_PRESENTATION:
1118  writer_data.ddsPublicationData.presentation = param.presentation();
1119  break;
1120  case PID_PARTITION:
1121  writer_data.ddsPublicationData.partition = param.partition();
1122  break;
1123  case PID_TOPIC_DATA:
1124  writer_data.ddsPublicationData.topic_data = param.topic_data();
1125  break;
1126  case PID_GROUP_DATA:
1127  writer_data.ddsPublicationData.group_data = param.group_data();
1128  break;
1130  if (param.representation().value.length() != 0) {
1131  writer_data.ddsPublicationData.representation = param.representation();
1132  }
1133  break;
1134  case PID_ENDPOINT_GUID:
1135  writer_data.writerProxy.remoteWriterGuid = param.guid();
1136  break;
1137  case PID_UNICAST_LOCATOR:
1138  append_locator(rtps_udp_locators, param.locator());
1139  break;
1140  case PID_MULTICAST_LOCATOR:
1141  append_locator(rtps_udp_locators, param.locator());
1142  break;
1143  case PID_OPENDDS_LOCATOR:
1144  // Append the rtps_udp_locators, if any, first, to preserve order
1145  append_locators_if_present(writer_data.writerProxy.allLocators,
1146  rtps_udp_locators);
1147  rtps_udp_locators.length(0);
1148  append_locator(writer_data.writerProxy.allLocators,
1149  param.opendds_locator());
1150  break;
1151  case PID_SENTINEL:
1152  case PID_PAD:
1153  // ignore
1154  break;
1156  if (use_xtypes) {
1157  extract_type_info_param(param, type_info);
1158  }
1159  break;
1160  default:
1161  if (param._d() & PIDMASK_INCOMPATIBLE) {
1162  return false;
1163  }
1164  }
1165  }
1166  // Append additional rtps_udp_locators, if any
1167  append_locators_if_present(writer_data.writerProxy.allLocators,
1168  rtps_udp_locators);
1169  rtps_udp_locators.length(0);
1170  return true;
1171 }
const ParameterId_t PID_SENTINEL
Definition: RtpsCore.idl:252
const ParameterId_t PID_DESTINATION_ORDER
Definition: RtpsCore.idl:265
const ParameterId_t PID_OPENDDS_LOCATOR
Definition: RtpsCore.idl:337
const ParameterId_t PID_TYPE_NAME
Definition: RtpsCore.idl:255
const ParameterId_t PID_OWNERSHIP
Definition: RtpsCore.idl:268
const ParameterId_t PID_DATA_REPRESENTATION
Definition: RtpsCore.idl:302
const ParameterId_t PID_OWNERSHIP_STRENGTH
Definition: RtpsCore.idl:269
const ParameterId_t PID_LIVELINESS
Definition: RtpsCore.idl:262
const ParameterId_t PID_TOPIC_NAME
Definition: RtpsCore.idl:254
const ParameterId_t PID_PAD
Definition: RtpsCore.idl:251
const ParameterId_t PID_DURABILITY_SERVICE
Definition: RtpsCore.idl:259
const ParameterId_t PID_RELIABILITY
Definition: RtpsCore.idl:263
const ParameterId_t PID_UNICAST_LOCATOR
Definition: RtpsCore.idl:276
const ParameterId_t PID_LATENCY_BUDGET
Definition: RtpsCore.idl:261
const ParameterId_t PID_LIFESPAN
Definition: RtpsCore.idl:264
ACE_CDR::ULong ULong
#define TheServiceParticipant
const ParameterId_t PID_DEADLINE
Definition: RtpsCore.idl:260
const short BEST_EFFORT
Definition: RtpsCore.idl:141
const ParameterId_t PID_PRESENTATION
Definition: RtpsCore.idl:270
const ParameterId_t PID_USER_DATA
Definition: RtpsCore.idl:253
const ParameterId_t PIDMASK_INCOMPATIBLE
Definition: RtpsCore.idl:312
const DataRepresentationId_t XCDR_DATA_REPRESENTATION
const ParameterId_t PID_DURABILITY
Definition: RtpsCore.idl:258
sequence< Locator_t > LocatorSeq
const ParameterId_t PID_ENDPOINT_GUID
Definition: RtpsCore.idl:296
const ParameterId_t PID_TOPIC_DATA
Definition: RtpsCore.idl:257
const ParameterId_t PID_XTYPES_TYPE_INFORMATION
Definition: RtpsCore.idl:308
const ParameterId_t PID_MULTICAST_LOCATOR
Definition: RtpsCore.idl:277
const ParameterId_t PID_PARTITION
Definition: RtpsCore.idl:271
const ParameterId_t PID_GROUP_DATA
Definition: RtpsCore.idl:256

◆ from_param_list() [9/14]

OpenDDS_Rtps_Export bool OpenDDS::RTPS::ParameterListConverter::from_param_list ( const ParameterList param_list,
DCPS::DiscoveredReaderData reader_data,
bool  use_xtypes,
XTypes::TypeInformation type_info 
)

Definition at line 1351 of file ParameterListConverter.cpp.

References OpenDDS::DCPS::ReaderProxy_t::allLocators, DDS::BEST_EFFORT_RELIABILITY_QOS, OpenDDS::RTPS::Parameter::content_filter_property, OpenDDS::DCPS::ContentFilterProperty_t::contentFilteredTopicName, OpenDDS::DCPS::DiscoveredReaderData::contentFilterProperty, OpenDDS::DCPS::DiscoveredReaderData::ddsSubscriptionData, OpenDDS::RTPS::Parameter::deadline, OpenDDS::RTPS::Parameter::destination_order, OpenDDS::RTPS::Parameter::durability, OpenDDS::DCPS::ReaderProxy_t::expectsInlineQos, OpenDDS::DCPS::ContentFilterProperty_t::expressionParameters, OpenDDS::DCPS::ContentFilterProperty_t::filterClassName, OpenDDS::DCPS::ContentFilterProperty_t::filterExpression, OpenDDS::RTPS::Parameter::group_data, OpenDDS::RTPS::Parameter::guid, OpenDDS::RTPS::ReliabilityQosPolicyRtps::kind, OpenDDS::RTPS::Parameter::latency_budget, OpenDDS::RTPS::Parameter::liveliness, OpenDDS::RTPS::Parameter::locator, OpenDDS::RTPS::ReliabilityQosPolicyRtps::max_blocking_time, OpenDDS::RTPS::Parameter::opendds_locator, OpenDDS::RTPS::Parameter::ownership, OpenDDS::RTPS::Parameter::partition, OpenDDS::RTPS::PID_CONTENT_FILTER_PROPERTY, OpenDDS::RTPS::PID_DATA_REPRESENTATION, OpenDDS::RTPS::PID_DEADLINE, OpenDDS::RTPS::PID_DESTINATION_ORDER, OpenDDS::RTPS::PID_DURABILITY, OpenDDS::RTPS::PID_ENDPOINT_GUID, OpenDDS::RTPS::PID_GROUP_DATA, OpenDDS::RTPS::PID_LATENCY_BUDGET, OpenDDS::RTPS::PID_LIVELINESS, OpenDDS::RTPS::PID_MULTICAST_LOCATOR, OpenDDS::RTPS::PID_OPENDDS_ASSOCIATED_WRITER, OpenDDS::RTPS::PID_OPENDDS_LOCATOR, OpenDDS::RTPS::PID_OWNERSHIP, OpenDDS::RTPS::PID_PAD, OpenDDS::RTPS::PID_PARTITION, OpenDDS::RTPS::PID_PRESENTATION, OpenDDS::RTPS::PID_RELIABILITY, OpenDDS::RTPS::PID_SENTINEL, OpenDDS::RTPS::PID_TIME_BASED_FILTER, OpenDDS::RTPS::PID_TOPIC_DATA, OpenDDS::RTPS::PID_TOPIC_NAME, OpenDDS::RTPS::PID_TYPE_NAME, OpenDDS::RTPS::PID_UNICAST_LOCATOR, OpenDDS::RTPS::PID_USER_DATA, OpenDDS::RTPS::PID_XTYPES_TYPE_CONSISTENCY, OpenDDS::RTPS::PID_XTYPES_TYPE_INFORMATION, OpenDDS::RTPS::PIDMASK_INCOMPATIBLE, OpenDDS::RTPS::Parameter::presentation, OpenDDS::DCPS::DiscoveredReaderData::readerProxy, OpenDDS::DCPS::ContentFilterProperty_t::relatedTopicName, OpenDDS::RTPS::Parameter::reliability, OpenDDS::RTPS::RELIABLE, DDS::RELIABLE_RELIABILITY_QOS, OpenDDS::DCPS::ReaderProxy_t::remoteReaderGuid, OpenDDS::RTPS::Parameter::representation, OpenDDS::RTPS::Parameter::string_data, TheServiceParticipant, OpenDDS::RTPS::Parameter::time_based_filter, OpenDDS::RTPS::Parameter::topic_data, OpenDDS::RTPS::Parameter::type_consistency, OpenDDS::RTPS::Parameter::user_data, OpenDDS::RTPS::ReliabilityKind_t::value, DDS::DataRepresentationQosPolicy::value, and DDS::XCDR_DATA_REPRESENTATION.

1355 {
1356  // Collect the rtps_udp locators before appending them to allLocators
1357 
1358  DCPS::LocatorSeq rtps_udp_locators;
1359  // Start by setting defaults
1360  reader_data.ddsSubscriptionData.topic_name = "";
1361  reader_data.ddsSubscriptionData.type_name = "";
1362  reader_data.ddsSubscriptionData.durability =
1363  TheServiceParticipant->initial_DurabilityQosPolicy();
1364  reader_data.ddsSubscriptionData.deadline =
1365  TheServiceParticipant->initial_DeadlineQosPolicy();
1366  reader_data.ddsSubscriptionData.latency_budget =
1367  TheServiceParticipant->initial_LatencyBudgetQosPolicy();
1368  reader_data.ddsSubscriptionData.liveliness =
1369  TheServiceParticipant->initial_LivelinessQosPolicy();
1370  reader_data.ddsSubscriptionData.reliability =
1371  TheServiceParticipant->initial_DataReaderQos().reliability;
1372  reader_data.ddsSubscriptionData.ownership =
1373  TheServiceParticipant->initial_OwnershipQosPolicy();
1374  reader_data.ddsSubscriptionData.destination_order =
1375  TheServiceParticipant->initial_DestinationOrderQosPolicy();
1376  reader_data.ddsSubscriptionData.user_data =
1377  TheServiceParticipant->initial_UserDataQosPolicy();
1378  reader_data.ddsSubscriptionData.time_based_filter =
1379  TheServiceParticipant->initial_TimeBasedFilterQosPolicy();
1380  reader_data.ddsSubscriptionData.presentation =
1381  TheServiceParticipant->initial_PresentationQosPolicy();
1382  reader_data.ddsSubscriptionData.partition =
1383  TheServiceParticipant->initial_PartitionQosPolicy();
1384  reader_data.ddsSubscriptionData.topic_data =
1385  TheServiceParticipant->initial_TopicDataQosPolicy();
1386  reader_data.ddsSubscriptionData.group_data =
1387  TheServiceParticipant->initial_GroupDataQosPolicy();
1388  reader_data.ddsSubscriptionData.representation.value.length(1);
1389  reader_data.ddsSubscriptionData.representation.value[0] = DDS::XCDR_DATA_REPRESENTATION;
1390  reader_data.ddsSubscriptionData.type_consistency =
1391  TheServiceParticipant->initial_TypeConsistencyEnforcementQosPolicy();
1392  reader_data.readerProxy.expectsInlineQos = false;
1393  reader_data.contentFilterProperty.contentFilteredTopicName = "";
1394  reader_data.contentFilterProperty.relatedTopicName = "";
1395  reader_data.contentFilterProperty.filterClassName = "";
1396  reader_data.contentFilterProperty.filterExpression = "";
1397  reader_data.contentFilterProperty.expressionParameters.length(0);
1398 
1399  CORBA::ULong length = param_list.length();
1400  for (CORBA::ULong i = 0; i < length; ++i) {
1401  const Parameter& param = param_list[i];
1402  switch (param._d()) {
1403  case PID_TOPIC_NAME:
1404  reader_data.ddsSubscriptionData.topic_name = param.string_data();
1405  break;
1406  case PID_TYPE_NAME:
1407  reader_data.ddsSubscriptionData.type_name = param.string_data();
1408  break;
1409  case PID_DURABILITY:
1410  reader_data.ddsSubscriptionData.durability = param.durability();
1411  break;
1412  case PID_DEADLINE:
1413  reader_data.ddsSubscriptionData.deadline = param.deadline();
1414  // Interoperability note: calling normalize() shouldn't be required
1415  normalize(reader_data.ddsSubscriptionData.deadline.period);
1416  break;
1417  case PID_LATENCY_BUDGET:
1418  reader_data.ddsSubscriptionData.latency_budget = param.latency_budget();
1419  // Interoperability note: calling normalize() shouldn't be required
1420  normalize(reader_data.ddsSubscriptionData.latency_budget.duration);
1421  break;
1422  case PID_LIVELINESS:
1423  reader_data.ddsSubscriptionData.liveliness = param.liveliness();
1424  // Interoperability note: calling normalize() shouldn't be required
1425  normalize(reader_data.ddsSubscriptionData.liveliness.lease_duration);
1426  break;
1427  case PID_RELIABILITY:
1428  reader_data.ddsSubscriptionData.reliability.max_blocking_time = param.reliability().max_blocking_time;
1429  // Interoperability note:
1430  // Spec creators for RTPS have reliability indexed at 1
1431  {
1432  const CORBA::Short rtpsKind = param.reliability().kind.value;
1433  const CORBA::Short OLD_RELIABLE_VALUE = 3;
1434  if (rtpsKind == RTPS::RELIABLE || rtpsKind == OLD_RELIABLE_VALUE) {
1435  reader_data.ddsSubscriptionData.reliability.kind = DDS::RELIABLE_RELIABILITY_QOS;
1436  } else { // default to BEST_EFFORT for readers
1437  reader_data.ddsSubscriptionData.reliability.kind = DDS::BEST_EFFORT_RELIABILITY_QOS;
1438  }
1439  }
1440  break;
1441  case PID_USER_DATA:
1442  reader_data.ddsSubscriptionData.user_data = param.user_data();
1443  break;
1444  case PID_OWNERSHIP:
1445  reader_data.ddsSubscriptionData.ownership = param.ownership();
1446  break;
1447  case PID_DESTINATION_ORDER:
1448  reader_data.ddsSubscriptionData.destination_order = param.destination_order();
1449  break;
1450  case PID_TIME_BASED_FILTER:
1451  reader_data.ddsSubscriptionData.time_based_filter = param.time_based_filter();
1452  // Interoperability note: calling normalize() shouldn't be required
1453  normalize(reader_data.ddsSubscriptionData.time_based_filter.minimum_separation);
1454  break;
1455  case PID_PRESENTATION:
1456  reader_data.ddsSubscriptionData.presentation = param.presentation();
1457  break;
1458  case PID_PARTITION:
1459  reader_data.ddsSubscriptionData.partition = param.partition();
1460  break;
1461  case PID_TOPIC_DATA:
1462  reader_data.ddsSubscriptionData.topic_data = param.topic_data();
1463  break;
1464  case PID_GROUP_DATA:
1465  reader_data.ddsSubscriptionData.group_data = param.group_data();
1466  break;
1468  if (param.representation().value.length() != 0) {
1469  reader_data.ddsSubscriptionData.representation = param.representation();
1470  }
1471  break;
1473  reader_data.ddsSubscriptionData.type_consistency = param.type_consistency();
1474  break;
1475  case PID_ENDPOINT_GUID:
1476  reader_data.readerProxy.remoteReaderGuid = param.guid();
1477  break;
1478  case PID_UNICAST_LOCATOR:
1479  append_locator(rtps_udp_locators, param.locator());
1480  break;
1481  case PID_MULTICAST_LOCATOR:
1482  append_locator(rtps_udp_locators, param.locator());
1483  break;
1485  reader_data.contentFilterProperty = param.content_filter_property();
1486  break;
1487  case PID_OPENDDS_LOCATOR:
1488  // Append the rtps_udp_locators, if any, first, to preserve order
1489  append_locators_if_present(reader_data.readerProxy.allLocators,
1490  rtps_udp_locators);
1491  rtps_udp_locators.length(0);
1492  append_locator(reader_data.readerProxy.allLocators,
1493  param.opendds_locator());
1494  break;
1496  append_associated_writer(reader_data, param);
1497  break;
1498  case PID_SENTINEL:
1499  case PID_PAD:
1500  // ignore
1501  break;
1503  if (use_xtypes) {
1504  extract_type_info_param(param, type_info);
1505  }
1506  break;
1507  default:
1508  if (param._d() & PIDMASK_INCOMPATIBLE) {
1509  return false;
1510  }
1511  }
1512  }
1513  // Append additional rtps_udp_locators, if any
1514  append_locators_if_present(reader_data.readerProxy.allLocators,
1515  rtps_udp_locators);
1516  rtps_udp_locators.length(0);
1517  return true;
1518 }
const ParameterId_t PID_SENTINEL
Definition: RtpsCore.idl:252
const ParameterId_t PID_DESTINATION_ORDER
Definition: RtpsCore.idl:265
const ParameterId_t PID_OPENDDS_LOCATOR
Definition: RtpsCore.idl:337
const ParameterId_t PID_XTYPES_TYPE_CONSISTENCY
Definition: RtpsCore.idl:305
const ParameterId_t PID_TYPE_NAME
Definition: RtpsCore.idl:255
const ParameterId_t PID_OWNERSHIP
Definition: RtpsCore.idl:268
const ParameterId_t PID_DATA_REPRESENTATION
Definition: RtpsCore.idl:302
const short RELIABLE
Definition: RtpsCore.idl:142
ACE_CDR::Short Short
const ParameterId_t PID_LIVELINESS
Definition: RtpsCore.idl:262
const ParameterId_t PID_TOPIC_NAME
Definition: RtpsCore.idl:254
const ParameterId_t PID_PAD
Definition: RtpsCore.idl:251
const ParameterId_t PID_RELIABILITY
Definition: RtpsCore.idl:263
const ParameterId_t PID_UNICAST_LOCATOR
Definition: RtpsCore.idl:276
const ParameterId_t PID_LATENCY_BUDGET
Definition: RtpsCore.idl:261
const ParameterId_t PID_CONTENT_FILTER_PROPERTY
Definition: RtpsCore.idl:286
ACE_CDR::ULong ULong
#define TheServiceParticipant
const ParameterId_t PID_DEADLINE
Definition: RtpsCore.idl:260
const ParameterId_t PID_PRESENTATION
Definition: RtpsCore.idl:270
const ParameterId_t PID_USER_DATA
Definition: RtpsCore.idl:253
const ParameterId_t PID_OPENDDS_ASSOCIATED_WRITER
Definition: RtpsCore.idl:338
const ParameterId_t PIDMASK_INCOMPATIBLE
Definition: RtpsCore.idl:312
const DataRepresentationId_t XCDR_DATA_REPRESENTATION
const ParameterId_t PID_DURABILITY
Definition: RtpsCore.idl:258
sequence< Locator_t > LocatorSeq
const ParameterId_t PID_ENDPOINT_GUID
Definition: RtpsCore.idl:296
const ParameterId_t PID_TOPIC_DATA
Definition: RtpsCore.idl:257
const ParameterId_t PID_XTYPES_TYPE_INFORMATION
Definition: RtpsCore.idl:308
const ParameterId_t PID_TIME_BASED_FILTER
Definition: RtpsCore.idl:272
const ParameterId_t PID_MULTICAST_LOCATOR
Definition: RtpsCore.idl:277
const ParameterId_t PID_PARTITION
Definition: RtpsCore.idl:271
const ParameterId_t PID_GROUP_DATA
Definition: RtpsCore.idl:256

◆ from_param_list() [10/14]

OpenDDS_Rtps_Export bool OpenDDS::RTPS::ParameterListConverter::from_param_list ( const ParameterList param_list,
DDS::Security::EndpointSecurityInfo info 
)

Definition at line 1530 of file ParameterListConverter.cpp.

References DDS::Security::EndpointSecurityInfo::endpoint_security_attributes, OpenDDS::RTPS::Parameter::endpoint_security_info, DDS::Security::PID_ENDPOINT_SECURITY_INFO, OpenDDS::RTPS::PIDMASK_INCOMPATIBLE, and DDS::Security::EndpointSecurityInfo::plugin_endpoint_security_attributes.

1532 {
1535 
1536  const unsigned int len = param_list.length();
1537  for (unsigned int i = 0; i < len; ++i) {
1538  const Parameter& p = param_list[i];
1539  switch (p._d()) {
1541  info = p.endpoint_security_info();
1542  break;
1543  default:
1544  if (p._d() & PIDMASK_INCOMPATIBLE) {
1545  return false;
1546  }
1547  }
1548  }
1549 
1550  return true;
1551 }
EndpointSecurityAttributesMask endpoint_security_attributes
const ParameterId_t PID_ENDPOINT_SECURITY_INFO
const ParameterId_t PIDMASK_INCOMPATIBLE
Definition: RtpsCore.idl:312
PluginEndpointSecurityAttributesMask plugin_endpoint_security_attributes

◆ from_param_list() [11/14]

OpenDDS_Rtps_Export bool OpenDDS::RTPS::ParameterListConverter::from_param_list ( const ParameterList param_list,
DDS::Security::DataTags tags 
)

Definition at line 1562 of file ParameterListConverter.cpp.

References OpenDDS::RTPS::Parameter::data_tags, DDS::Security::PID_DATA_TAGS, OpenDDS::RTPS::PIDMASK_INCOMPATIBLE, and DDS::Security::DataTags::tags.

1564 {
1565  tags.tags.length(0);
1566 
1567  const unsigned int len = param_list.length();
1568  for (unsigned int i = 0; i < len; ++i) {
1569  const Parameter& p = param_list[i];
1570  switch (p._d()) {
1572  tags = p.data_tags();
1573  break;
1574  default:
1575  if (p._d() & PIDMASK_INCOMPATIBLE) {
1576  return false;
1577  }
1578  }
1579  }
1580 
1581  return true;
1582 }
const ParameterId_t PIDMASK_INCOMPATIBLE
Definition: RtpsCore.idl:312
const ParameterId_t PID_DATA_TAGS

◆ from_param_list() [12/14]

OpenDDS_Rtps_Export bool OpenDDS::RTPS::ParameterListConverter::from_param_list ( const ParameterList param_list,
DiscoveredPublication_SecurityWrapper wrapper,
bool  use_xtypes,
XTypes::TypeInformation type_info 
)

Definition at line 1598 of file ParameterListConverter.cpp.

References OpenDDS::RTPS::DiscoveredPublication_SecurityWrapper::data, OpenDDS::RTPS::DiscoveredPublication_SecurityWrapper::data_tags, from_param_list(), and OpenDDS::RTPS::DiscoveredPublication_SecurityWrapper::security_info.

1602 {
1603  bool result = from_param_list(param_list, wrapper.data, use_xtypes, type_info) &&
1604  from_param_list(param_list, wrapper.security_info) &&
1605  from_param_list(param_list, wrapper.data_tags);
1606 
1607  return result;
1608 }
bool from_param_list(const ParameterList &param_list, ICE::AgentInfoMap &ai_map)

◆ from_param_list() [13/14]

OpenDDS_Rtps_Export bool OpenDDS::RTPS::ParameterListConverter::from_param_list ( const ParameterList param_list,
DiscoveredSubscription_SecurityWrapper wrapper,
bool  use_xtypes,
XTypes::TypeInformation type_info 
)

Definition at line 1624 of file ParameterListConverter.cpp.

References OpenDDS::RTPS::DiscoveredSubscription_SecurityWrapper::data, OpenDDS::RTPS::DiscoveredSubscription_SecurityWrapper::data_tags, from_param_list(), and OpenDDS::RTPS::DiscoveredSubscription_SecurityWrapper::security_info.

1628 {
1629  bool result = from_param_list(param_list, wrapper.data, use_xtypes, type_info) &&
1630  from_param_list(param_list, wrapper.security_info) &&
1631  from_param_list(param_list, wrapper.data_tags);
1632 
1633  return result;
1634 }
bool from_param_list(const ParameterList &param_list, ICE::AgentInfoMap &ai_map)

◆ from_param_list() [14/14]

OpenDDS_Rtps_Export bool OpenDDS::RTPS::ParameterListConverter::from_param_list ( const ParameterList param_list,
ICE::AgentInfoMap &  ai_map 
)

Definition at line 1669 of file ParameterListConverter.cpp.

References OpenDDS::ICE::Candidate::address, OpenDDS::RTPS::IceGeneral_t::agent_type, OpenDDS::ICE::Candidate::foundation, OpenDDS::RTPS::IceCandidate_t::foundation, OpenDDS::RTPS::Parameter::ice_candidate, OpenDDS::RTPS::Parameter::ice_general, OpenDDS::RTPS::IceGeneral_t::key, OpenDDS::RTPS::IceCandidate_t::key, OpenDDS::RTPS::IceCandidate_t::locator, OpenDDS::DCPS::locator_to_address(), OPENDDS_END_VERSIONED_NAMESPACE_DECL, OPENDDS_STRING, OpenDDS::ICE::AgentInfo::password, OpenDDS::RTPS::IceGeneral_t::password, OpenDDS::RTPS::PID_OPENDDS_ICE_CANDIDATE, OpenDDS::RTPS::PID_OPENDDS_ICE_GENERAL, OpenDDS::ICE::Candidate::priority, OpenDDS::RTPS::IceCandidate_t::priority, OpenDDS::ICE::Candidate::type, OpenDDS::ICE::AgentInfo::type, OpenDDS::RTPS::IceCandidate_t::type, OpenDDS::ICE::AgentInfo::username, and OpenDDS::RTPS::IceGeneral_t::username.

1671 {
1672  for (CORBA::ULong idx = 0, count = param_list.length(); idx != count; ++idx) {
1673  const Parameter& parameter = param_list[idx];
1674  switch (parameter._d()) {
1675  case PID_OPENDDS_ICE_GENERAL: {
1676  const IceGeneral_t& ice_general = parameter.ice_general();
1677  ICE::AgentInfo& agent_info = ai_map[OPENDDS_STRING(ice_general.key.in())];
1678  agent_info.type = static_cast<ICE::AgentType>(ice_general.agent_type);
1679  agent_info.username = ice_general.username;
1680  agent_info.password = ice_general.password;
1681  break;
1682  }
1684  const IceCandidate_t& ice_candidate = parameter.ice_candidate();
1685  ICE::Candidate candidate;
1686 #if IPV6_V6ONLY
1687  // https://tools.ietf.org/html/rfc8445
1688 
1689  // IPv4-mapped IPv6 addresses SHOULD NOT be included in the
1690  // address candidates unless the application using ICE does not
1691  // support IPv4 (i.e., it is an IPv6-only application
1692  // [RFC4038]).
1693  const bool map_ipv4_to_ipv6 = true;
1694 #else
1695  const bool map_ipv4_to_ipv6 = false;
1696 #endif
1697  if (locator_to_address(candidate.address, ice_candidate.locator, map_ipv4_to_ipv6) != 0) {
1698  return false;
1699  }
1700  candidate.foundation = ice_candidate.foundation;
1701  candidate.priority = ice_candidate.priority;
1702  candidate.type = static_cast<ICE::CandidateType>(ice_candidate.type);
1703  ai_map[OPENDDS_STRING(ice_candidate.key.in())].candidates.push_back(candidate);
1704  break;
1705  }
1706  default:
1707  // Do nothing.
1708  break;
1709  }
1710  }
1711  return true;
1712 }
CandidateType
Definition: Ice.h:35
ACE_CDR::ULong ULong
const ParameterId_t PID_OPENDDS_ICE_GENERAL
Definition: RtpsCore.idl:339
AgentType
Definition: Ice.h:30
int locator_to_address(ACE_INET_Addr &dest, const DCPS::Locator_t &locator, bool map)
#define OPENDDS_STRING
const ParameterId_t PID_OPENDDS_ICE_CANDIDATE
Definition: RtpsCore.idl:340

◆ to_param_list() [1/14]

OpenDDS_Rtps_Export bool OpenDDS::RTPS::ParameterListConverter::to_param_list ( const DDS::ParticipantBuiltinTopicData pbtd,
ParameterList param_list 
)

◆ to_param_list() [2/14]

OpenDDS_Rtps_Export bool OpenDDS::RTPS::ParameterListConverter::to_param_list ( const DDS::Security::ParticipantBuiltinTopicData pbtd,
ParameterList param_list 
)

Definition at line 406 of file ParameterListConverter.cpp.

References DDS::Security::ParticipantBuiltinTopicData::base, DDS::Security::ParticipantBuiltinTopicData::extended_builtin_endpoints, OpenDDS::RTPS::Parameter::extended_builtin_endpoints, DDS::Security::ParticipantBuiltinTopicData::identity_token, OpenDDS::RTPS::Parameter::identity_token, OpenDDS::RTPS::Parameter::participant_security_info, DDS::Security::ParticipantBuiltinTopicData::permissions_token, OpenDDS::RTPS::Parameter::permissions_token, DDS::Security::ParticipantBuiltinTopicData::property, OpenDDS::RTPS::Parameter::property, DDS::Security::ParticipantBuiltinTopicData::security_info, and to_param_list().

408 {
409  to_param_list(pbtd.base, param_list);
410 
411  Parameter param_it;
412  param_it.identity_token(pbtd.identity_token);
413  add_param(param_list, param_it);
414 
415  Parameter param_pt;
416  param_pt.permissions_token(pbtd.permissions_token);
417  add_param(param_list, param_pt);
418 
419  if (not_default(pbtd.property)) {
420  Parameter param_p;
421  param_p.property(pbtd.property);
422  add_param(param_list, param_p);
423  }
424 
425  Parameter param_psi;
426  param_psi.participant_security_info(pbtd.security_info);
427  add_param(param_list, param_psi);
428 
429  Parameter param_ebe;
430  param_ebe.extended_builtin_endpoints(pbtd.extended_builtin_endpoints);
431  add_param(param_list, param_ebe);
432 
433  return true;
434 }
DDS::ParticipantBuiltinTopicData base
bool to_param_list(const ICE::AgentInfoMap &ai_map, ParameterList &param_list)
ExtendedBuiltinEndpointSet_t extended_builtin_endpoints

◆ to_param_list() [3/14]

OpenDDS_Rtps_Export bool OpenDDS::RTPS::ParameterListConverter::to_param_list ( const DDS::Security::ParticipantBuiltinTopicDataSecure pbtds,
ParameterList param_list 
)

Definition at line 474 of file ParameterListConverter.cpp.

References DDS::Security::ParticipantBuiltinTopicDataSecure::base, DDS::Security::ParticipantBuiltinTopicDataSecure::identity_status_token, OpenDDS::RTPS::Parameter::identity_status_token, and to_param_list().

476 {
477  to_param_list(pbtds.base, param_list);
478 
479  Parameter param_ist;
480  param_ist.identity_status_token(pbtds.identity_status_token);
481  add_param(param_list, param_ist);
482 
483  return true;
484 }
bool to_param_list(const ICE::AgentInfoMap &ai_map, ParameterList &param_list)

◆ to_param_list() [4/14]

OpenDDS_Rtps_Export bool OpenDDS::RTPS::ParameterListConverter::to_param_list ( const ParticipantProxy_t proxy,
ParameterList param_list 
)

Definition at line 511 of file ParameterListConverter.cpp.

References OpenDDS::RTPS::ParticipantProxy_t::availableBuiltinEndpoints, OpenDDS::RTPS::ParticipantProxy_t::availableExtendedBuiltinEndpoints, OpenDDS::RTPS::Parameter::builtin_endpoints, OpenDDS::RTPS::Parameter::builtinEndpointQos, OpenDDS::RTPS::ParticipantProxy_t::builtinEndpointQos, OpenDDS::RTPS::Parameter::count, OpenDDS::RTPS::ParticipantProxy_t::defaultMulticastLocatorList, OpenDDS::RTPS::ParticipantProxy_t::defaultUnicastLocatorList, OpenDDS::RTPS::Parameter::domainId, OpenDDS::RTPS::ParticipantProxy_t::domainId, OpenDDS::RTPS::Parameter::expects_inline_qos, OpenDDS::RTPS::ParticipantProxy_t::expectsInlineQos, OpenDDS::RTPS::Parameter::extended_builtin_endpoints, OpenDDS::RTPS::Parameter::guid, OpenDDS::RTPS::ParticipantProxy_t::guidPrefix, OpenDDS::DCPS::make_part_guid(), OpenDDS::RTPS::ParticipantProxy_t::manualLivelinessCount, OpenDDS::RTPS::ParticipantProxy_t::metatrafficMulticastLocatorList, OpenDDS::RTPS::ParticipantProxy_t::metatrafficUnicastLocatorList, OpenDDS::RTPS::ParticipantProxy_t::opendds_participant_flags, OpenDDS::RTPS::Parameter::opendds_rtps_relay_application_participant, OpenDDS::RTPS::ParticipantProxy_t::opendds_rtps_relay_application_participant, OpenDDS::RTPS::Parameter::participant_builtin_endpoints, OpenDDS::RTPS::Parameter::participant_flags, OpenDDS::RTPS::PID_DEFAULT_MULTICAST_LOCATOR, OpenDDS::RTPS::PID_DEFAULT_UNICAST_LOCATOR, OpenDDS::RTPS::PID_METATRAFFIC_MULTICAST_LOCATOR, OpenDDS::RTPS::PID_METATRAFFIC_UNICAST_LOCATOR, OpenDDS::RTPS::PID_PARTICIPANT_GUID, OpenDDS::RTPS::Parameter::property, OpenDDS::RTPS::ParticipantProxy_t::property, OpenDDS::RTPS::ParticipantProxy_t::protocolVersion, OpenDDS::RTPS::Parameter::vendor, OpenDDS::RTPS::ParticipantProxy_t::vendorId, and OpenDDS::RTPS::Parameter::version.

513 {
514  Parameter beq_param;
515  beq_param.builtinEndpointQos(proxy.builtinEndpointQos);
516  add_param(param_list, beq_param);
517 
518  Parameter pd_param;
519  pd_param.domainId(proxy.domainId);
520  add_param(param_list, pd_param);
521 
522  Parameter pv_param;
523  pv_param.version(proxy.protocolVersion);
524  add_param(param_list, pv_param);
525 
526  Parameter gp_param;
527  gp_param.guid(DCPS::make_part_guid(proxy.guidPrefix));
528  gp_param._d(PID_PARTICIPANT_GUID);
529  add_param(param_list, gp_param);
530 
531  Parameter vid_param;
532  vid_param.vendor(proxy.vendorId);
533  add_param(param_list, vid_param);
534 
535  if (proxy.expectsInlineQos) {
536  Parameter eiq_param; // Default is false
537  eiq_param.expects_inline_qos(proxy.expectsInlineQos);
538  add_param(param_list, eiq_param);
539  }
540 
541  Parameter abe_param;
542  abe_param.participant_builtin_endpoints(
543  proxy.availableBuiltinEndpoints);
544  add_param(param_list, abe_param);
545 
546  // Interoperability note:
547  // For interoperability with other DDS implemenations, we'll encode the
548  // availableBuiltinEndpoints as PID_BUILTIN_ENDPOINT_SET in addition to
549  // PID_PARTICIPANT_BUILTIN_ENDPOINTS (above).
550  Parameter be_param;
551  be_param.builtin_endpoints(
552  proxy.availableBuiltinEndpoints);
553  add_param(param_list, be_param);
554 
555 #ifdef OPENDDS_SECURITY
556  Parameter ebe_param;
557  ebe_param.extended_builtin_endpoints(
558  proxy.availableExtendedBuiltinEndpoints);
559  add_param(param_list, ebe_param);
560 #endif
561 
562  // Each locator
563  add_param_locator_seq(
564  param_list,
565  proxy.metatrafficUnicastLocatorList,
567 
568  add_param_locator_seq(
569  param_list,
570  proxy.metatrafficMulticastLocatorList,
572 
573  add_param_locator_seq(
574  param_list,
575  proxy.defaultUnicastLocatorList,
577 
578  add_param_locator_seq(
579  param_list,
580  proxy.defaultMulticastLocatorList,
582 
583  Parameter ml_param;
584  ml_param.count(proxy.manualLivelinessCount);
585  add_param(param_list, ml_param);
586 
587  if (not_default(proxy.property)) {
588  Parameter param_p;
589  param_p.property(proxy.property);
590  add_param(param_list, param_p);
591  }
592 
593  if (not_default(proxy.opendds_participant_flags)) {
594  Parameter param_opf;
595  param_opf.participant_flags(proxy.opendds_participant_flags);
596  add_param(param_list, param_opf);
597  }
598 
599  if (proxy.opendds_rtps_relay_application_participant) {
600  Parameter param;
601  param.opendds_rtps_relay_application_participant(proxy.opendds_rtps_relay_application_participant);
602  add_param(param_list, param);
603  }
604 
605  return true;
606 }
const ParameterId_t PID_DEFAULT_UNICAST_LOCATOR
Definition: RtpsCore.idl:278
const ParameterId_t PID_PARTICIPANT_GUID
Definition: RtpsCore.idl:287
const ParameterId_t PID_METATRAFFIC_MULTICAST_LOCATOR
Definition: RtpsCore.idl:281
const ParameterId_t PID_DEFAULT_MULTICAST_LOCATOR
Definition: RtpsCore.idl:279
const ParameterId_t PID_METATRAFFIC_UNICAST_LOCATOR
Definition: RtpsCore.idl:280
OpenDDS_Dcps_Export GUID_t make_part_guid(const GuidPrefix_t &prefix)
Definition: GuidUtils.h:227

◆ to_param_list() [5/14]

OpenDDS_Rtps_Export bool OpenDDS::RTPS::ParameterListConverter::to_param_list ( const Duration_t duration,
ParameterList param_list 
)

Definition at line 713 of file ParameterListConverter.cpp.

References OpenDDS::RTPS::Parameter::duration, OpenDDS::RTPS::Duration_t::fraction, OpenDDS_Rtps_Export, and OpenDDS::RTPS::Duration_t::seconds.

715 {
716  if ((duration.seconds != 100) ||
717  (duration.fraction != 0)) {
718  Parameter ld_param;
719  ld_param.duration(duration);
720  add_param(param_list, ld_param);
721  }
722 
723  return true;
724 }

◆ to_param_list() [6/14]

OpenDDS_Rtps_Export bool OpenDDS::RTPS::ParameterListConverter::to_param_list ( const SPDPdiscoveredParticipantData participant_data,
ParameterList param_list 
)

Definition at line 752 of file ParameterListConverter.cpp.

References OpenDDS::RTPS::SPDPdiscoveredParticipantData::ddsParticipantData, OpenDDS::RTPS::SPDPdiscoveredParticipantData::leaseDuration, OpenDDS::RTPS::SPDPdiscoveredParticipantData::participantProxy, and to_param_list().

754 {
755  to_param_list(participant_data.ddsParticipantData, param_list);
756  to_param_list(participant_data.participantProxy, param_list);
757  to_param_list(participant_data.leaseDuration, param_list);
758 
759  return true;
760 }
bool to_param_list(const ICE::AgentInfoMap &ai_map, ParameterList &param_list)

◆ to_param_list() [7/14]

OpenDDS_Rtps_Export bool OpenDDS::RTPS::ParameterListConverter::to_param_list ( const OpenDDS::Security::SPDPdiscoveredParticipantData participant_data,
ParameterList param_list 
)

Definition at line 777 of file ParameterListConverter.cpp.

References DDS::Security::ParticipantBuiltinTopicData::base, DDS::Security::ParticipantBuiltinTopicDataSecure::base, OpenDDS::Security::SPDPdiscoveredParticipantData::dataKind, OpenDDS::Security::SPDPdiscoveredParticipantData::ddsParticipantDataSecure, OpenDDS::Security::DPDK_ENHANCED, OpenDDS::Security::DPDK_SECURE, OpenDDS::Security::SPDPdiscoveredParticipantData::leaseDuration, OpenDDS::Security::SPDPdiscoveredParticipantData::participantProxy, and to_param_list().

779 {
780 
781  if (participant_data.dataKind == OpenDDS::Security::DPDK_SECURE) {
782  to_param_list(participant_data.ddsParticipantDataSecure, param_list);
783 
784  } else if (participant_data.dataKind == OpenDDS::Security::DPDK_ENHANCED) {
785  to_param_list(participant_data.ddsParticipantDataSecure.base, param_list);
786 
787  } else {
788  to_param_list(participant_data.ddsParticipantDataSecure.base.base, param_list);
789  }
790 
791  to_param_list(participant_data.participantProxy, param_list);
792  to_param_list(participant_data.leaseDuration, param_list);
793 
794  return true;
795 }
DDS::ParticipantBuiltinTopicData base
OpenDDS::RTPS::ParticipantProxy_t participantProxy
DDS::Security::ParticipantBuiltinTopicDataSecure ddsParticipantDataSecure
bool to_param_list(const ICE::AgentInfoMap &ai_map, ParameterList &param_list)

◆ to_param_list() [8/14]

OpenDDS_Rtps_Export bool OpenDDS::RTPS::ParameterListConverter::to_param_list ( const DCPS::DiscoveredWriterData writer_data,
ParameterList param_list,
bool  use_xtypes,
const XTypes::TypeInformation type_info,
bool  map 
)

Definition at line 842 of file ParameterListConverter.cpp.

References ACE_DEBUG, ACE_TEXT(), add_DataRepresentationQos(), OpenDDS::DCPS::WriterProxy_t::allLocators, OpenDDS::RTPS::BEST_EFFORT, DDS::BEST_EFFORT_RELIABILITY_QOS, OpenDDS::DCPS::DiscoveredWriterData::ddsPublicationData, OpenDDS::RTPS::Parameter::deadline, OpenDDS::RTPS::Parameter::destination_order, OpenDDS::RTPS::Parameter::durability, OpenDDS::RTPS::Parameter::durability_service, OpenDDS::RTPS::Parameter::group_data, OpenDDS::RTPS::Parameter::guid, OpenDDS::RTPS::ReliabilityQosPolicyRtps::kind, OpenDDS::RTPS::Parameter::latency_budget, OpenDDS::RTPS::Parameter::lifespan, OpenDDS::RTPS::Parameter::liveliness, LM_WARNING, OpenDDS::RTPS::ReliabilityQosPolicyRtps::max_blocking_time, OpenDDS::RTPS::Parameter::ownership, OpenDDS::RTPS::Parameter::ownership_strength, OpenDDS::RTPS::Parameter::partition, OpenDDS::RTPS::PID_ENDPOINT_GUID, OpenDDS::RTPS::PID_TOPIC_NAME, OpenDDS::RTPS::PID_TYPE_NAME, OpenDDS::RTPS::Parameter::presentation, OpenDDS::RTPS::Parameter::reliability, OpenDDS::RTPS::RELIABLE, OpenDDS::DCPS::WriterProxy_t::remoteWriterGuid, OpenDDS::RTPS::Parameter::string_data, OpenDDS::RTPS::Parameter::topic_data, OpenDDS::DCPS::TransportLocator::transport_type, OpenDDS::RTPS::Parameter::user_data, OpenDDS::RTPS::ReliabilityKind_t::value, and OpenDDS::DCPS::DiscoveredWriterData::writerProxy.

847 {
848  // Ignore builtin topic key
849 
850  {
851  Parameter param;
852  param.string_data(writer_data.ddsPublicationData.topic_name);
853  param._d(PID_TOPIC_NAME);
854  add_param(param_list, param);
855  }
856 
857  if (use_xtypes) {
858  add_type_info_param(param_list, type_info);
859  }
860 
861  {
862  Parameter param;
863  param.string_data(writer_data.ddsPublicationData.type_name);
864  param._d(PID_TYPE_NAME);
865  add_param(param_list, param);
866  }
867 
868  if (not_default(writer_data.ddsPublicationData.durability)) {
869  Parameter param;
870  param.durability(writer_data.ddsPublicationData.durability);
871  add_param(param_list, param);
872  }
873 
874  if (not_default(writer_data.ddsPublicationData.durability_service)) {
875  Parameter param;
876  param.durability_service(writer_data.ddsPublicationData.durability_service);
877  add_param(param_list, param);
878  }
879 
880  if (not_default(writer_data.ddsPublicationData.deadline)) {
881  Parameter param;
882  param.deadline(writer_data.ddsPublicationData.deadline);
883  add_param(param_list, param);
884  }
885 
886  if (not_default(writer_data.ddsPublicationData.latency_budget)) {
887  Parameter param;
888  param.latency_budget(writer_data.ddsPublicationData.latency_budget);
889  add_param(param_list, param);
890  }
891 
892  if (not_default(writer_data.ddsPublicationData.liveliness)) {
893  Parameter param;
894  param.liveliness(writer_data.ddsPublicationData.liveliness);
895  add_param(param_list, param);
896  }
897 
898  // Interoperability note:
899  // For interoperability, always write the reliability info
900  {
901  Parameter param;
902  ReliabilityQosPolicyRtps reliability;
903  reliability.max_blocking_time = writer_data.ddsPublicationData.reliability.max_blocking_time;
904 
905  if (writer_data.ddsPublicationData.reliability.kind == DDS::BEST_EFFORT_RELIABILITY_QOS) {
906  reliability.kind.value = RTPS::BEST_EFFORT;
907  } else { // default to RELIABLE for writers
908  reliability.kind.value = RTPS::RELIABLE;
909  }
910 
911  param.reliability(reliability);
912  add_param(param_list, param);
913  }
914 
915  if (not_default(writer_data.ddsPublicationData.lifespan)) {
916  Parameter param;
917  param.lifespan(writer_data.ddsPublicationData.lifespan);
918  add_param(param_list, param);
919  }
920 
921  if (not_default(writer_data.ddsPublicationData.user_data)) {
922  Parameter param;
923  param.user_data(writer_data.ddsPublicationData.user_data);
924  add_param(param_list, param);
925  }
926 
927  if (not_default(writer_data.ddsPublicationData.ownership)) {
928  Parameter param;
929  param.ownership(writer_data.ddsPublicationData.ownership);
930  add_param(param_list, param);
931  }
932 
933  if (not_default(writer_data.ddsPublicationData.ownership_strength)) {
934  Parameter param;
935  param.ownership_strength(writer_data.ddsPublicationData.ownership_strength);
936  add_param(param_list, param);
937  }
938 
939  if (not_default(writer_data.ddsPublicationData.destination_order)) {
940  Parameter param;
941  param.destination_order(writer_data.ddsPublicationData.destination_order);
942  add_param(param_list, param);
943  }
944 
945  if (not_default(writer_data.ddsPublicationData.presentation)) {
946  Parameter param;
947  param.presentation(writer_data.ddsPublicationData.presentation);
948  add_param(param_list, param);
949  }
950 
951  if (not_default(writer_data.ddsPublicationData.partition)) {
952  Parameter param;
953  param.partition(writer_data.ddsPublicationData.partition);
954  add_param(param_list, param);
955  }
956 
957  if (not_default(writer_data.ddsPublicationData.topic_data)) {
958  Parameter param;
959  param.topic_data(writer_data.ddsPublicationData.topic_data);
960  add_param(param_list, param);
961  }
962 
963  if (not_default(writer_data.ddsPublicationData.group_data)) {
964  Parameter param;
965  param.group_data(writer_data.ddsPublicationData.group_data);
966  add_param(param_list, param);
967  }
968 
969  add_DataRepresentationQos(param_list, writer_data.ddsPublicationData.representation.value);
970 
971  {
972  Parameter param;
973  param.guid(writer_data.writerProxy.remoteWriterGuid);
974  param._d(PID_ENDPOINT_GUID);
975  add_param(param_list, param);
976  }
977  CORBA::ULong locator_len = writer_data.writerProxy.allLocators.length();
978 
979  // Serialize from allLocators, rather than the unicastLocatorList
980  // and multicastLocatorList. This allows OpenDDS transports to be
981  // serialized in the proper order using custom PIDs.
982  for (CORBA::ULong i = 0; i < locator_len; ++i) {
983  // Each locator has a blob of interest
984  const DCPS::TransportLocator& tl = writer_data.writerProxy.allLocators[i];
985  // If this is an rtps udp transport
986  if (!std::strcmp(tl.transport_type, "rtps_udp")) {
987  // Append the locator's deserialized locator and an RTPS PID
988  add_param_rtps_locator(param_list, tl, map);
989  // Otherwise, this is an OpenDDS, custom transport
990  } else {
991  // Append the blob and a custom PID
992  add_param_dcps_locator(param_list, tl);
993  if (!std::strcmp(tl.transport_type, "multicast")) {
994  ACE_DEBUG((LM_WARNING,
995  ACE_TEXT("(%P|%t) to_param_list(dwd) - ")
996  ACE_TEXT("Multicast transport with RTPS ")
997  ACE_TEXT("discovery has known issues")));
998  }
999  }
1000  }
1001 
1002  return true;
1003 }
#define ACE_DEBUG(X)
const ParameterId_t PID_TYPE_NAME
Definition: RtpsCore.idl:255
const short RELIABLE
Definition: RtpsCore.idl:142
const ParameterId_t PID_TOPIC_NAME
Definition: RtpsCore.idl:254
ACE_CDR::ULong ULong
const short BEST_EFFORT
Definition: RtpsCore.idl:141
void add_DataRepresentationQos(ParameterList &param_list, const DDS::DataRepresentationIdSeq &ids, bool reader)
ACE_TEXT("TCP_Factory")
const ParameterId_t PID_ENDPOINT_GUID
Definition: RtpsCore.idl:296

◆ to_param_list() [9/14]

OpenDDS_Rtps_Export bool OpenDDS::RTPS::ParameterListConverter::to_param_list ( const DCPS::DiscoveredReaderData reader_data,
ParameterList param_list,
bool  use_xtypes,
const XTypes::TypeInformation type_info,
bool  map 
)

Definition at line 1175 of file ParameterListConverter.cpp.

References ACE_DEBUG, ACE_TEXT(), add_DataRepresentationQos(), OpenDDS::DCPS::ReaderProxy_t::allLocators, OpenDDS::DCPS::ReaderProxy_t::associatedWriters, OpenDDS::RTPS::BEST_EFFORT, OpenDDS::RTPS::Parameter::content_filter_property, OpenDDS::DCPS::DiscoveredReaderData::contentFilterProperty, OpenDDS::DCPS::DiscoveredReaderData::ddsSubscriptionData, OpenDDS::RTPS::Parameter::deadline, OpenDDS::RTPS::Parameter::destination_order, OpenDDS::RTPS::Parameter::durability, OpenDDS::DCPS::ContentFilterProperty_t::filterClassName, OpenDDS::RTPS::Parameter::group_data, OpenDDS::RTPS::Parameter::guid, OpenDDS::RTPS::ReliabilityQosPolicyRtps::kind, OpenDDS::RTPS::Parameter::latency_budget, OpenDDS::RTPS::Parameter::liveliness, LM_WARNING, OpenDDS::RTPS::ReliabilityQosPolicyRtps::max_blocking_time, OpenDDS::RTPS::Parameter::ownership, OpenDDS::RTPS::Parameter::partition, OpenDDS::RTPS::PID_ENDPOINT_GUID, OpenDDS::RTPS::PID_OPENDDS_ASSOCIATED_WRITER, OpenDDS::RTPS::PID_TOPIC_NAME, OpenDDS::RTPS::PID_TYPE_NAME, OpenDDS::RTPS::Parameter::presentation, OpenDDS::DCPS::DiscoveredReaderData::readerProxy, OpenDDS::RTPS::Parameter::reliability, OpenDDS::RTPS::RELIABLE, DDS::RELIABLE_RELIABILITY_QOS, OpenDDS::DCPS::ReaderProxy_t::remoteReaderGuid, OpenDDS::RTPS::Parameter::string_data, OpenDDS::RTPS::Parameter::time_based_filter, OpenDDS::RTPS::Parameter::topic_data, OpenDDS::DCPS::TransportLocator::transport_type, OpenDDS::RTPS::Parameter::type_consistency, OpenDDS::RTPS::Parameter::user_data, and OpenDDS::RTPS::ReliabilityKind_t::value.

1180 {
1181  // Ignore builtin topic key
1182  {
1183  Parameter param;
1184  param.string_data(reader_data.ddsSubscriptionData.topic_name);
1185  param._d(PID_TOPIC_NAME);
1186  add_param(param_list, param);
1187  }
1188 
1189  if (use_xtypes) {
1190  add_type_info_param(param_list, type_info);
1191  }
1192 
1193  {
1194  Parameter param;
1195  param.string_data(reader_data.ddsSubscriptionData.type_name);
1196  param._d(PID_TYPE_NAME);
1197  add_param(param_list, param);
1198  }
1199 
1200  if (not_default(reader_data.ddsSubscriptionData.durability)) {
1201  Parameter param;
1202  param.durability(reader_data.ddsSubscriptionData.durability);
1203  add_param(param_list, param);
1204  }
1205 
1206  if (not_default(reader_data.ddsSubscriptionData.deadline)) {
1207  Parameter param;
1208  param.deadline(reader_data.ddsSubscriptionData.deadline);
1209  add_param(param_list, param);
1210  }
1211 
1212  if (not_default(reader_data.ddsSubscriptionData.latency_budget)) {
1213  Parameter param;
1214  param.latency_budget(reader_data.ddsSubscriptionData.latency_budget);
1215  add_param(param_list, param);
1216  }
1217 
1218  if (not_default(reader_data.ddsSubscriptionData.liveliness)) {
1219  Parameter param;
1220  param.liveliness(reader_data.ddsSubscriptionData.liveliness);
1221  add_param(param_list, param);
1222  }
1223 
1224  // Interoperability note:
1225  // For interoperability, always write the reliability info
1226  // if (not_default(reader_data.ddsSubscriptionData.reliability, false))
1227  {
1228  Parameter param;
1229  ReliabilityQosPolicyRtps reliability;
1230  reliability.max_blocking_time = reader_data.ddsSubscriptionData.reliability.max_blocking_time;
1231 
1232  if (reader_data.ddsSubscriptionData.reliability.kind == DDS::RELIABLE_RELIABILITY_QOS) {
1233  reliability.kind.value = RTPS::RELIABLE;
1234  } else { // default to BEST_EFFORT for readers
1235  reliability.kind.value = RTPS::BEST_EFFORT;
1236  }
1237 
1238  param.reliability(reliability);
1239  add_param(param_list, param);
1240  }
1241 
1242  if (not_default(reader_data.ddsSubscriptionData.ownership)) {
1243  Parameter param;
1244  param.ownership(reader_data.ddsSubscriptionData.ownership);
1245  add_param(param_list, param);
1246  }
1247 
1248  if (not_default(reader_data.ddsSubscriptionData.destination_order)) {
1249  Parameter param;
1250  param.destination_order(reader_data.ddsSubscriptionData.destination_order);
1251  add_param(param_list, param);
1252  }
1253 
1254  if (not_default(reader_data.ddsSubscriptionData.user_data)) {
1255  Parameter param;
1256  param.user_data(reader_data.ddsSubscriptionData.user_data);
1257  add_param(param_list, param);
1258  }
1259 
1260  if (not_default(reader_data.ddsSubscriptionData.time_based_filter)) {
1261  Parameter param;
1262  param.time_based_filter(reader_data.ddsSubscriptionData.time_based_filter);
1263  add_param(param_list, param);
1264  }
1265 
1266  if (not_default(reader_data.ddsSubscriptionData.presentation)) {
1267  Parameter param;
1268  param.presentation(reader_data.ddsSubscriptionData.presentation);
1269  add_param(param_list, param);
1270  }
1271 
1272  if (not_default(reader_data.ddsSubscriptionData.partition)) {
1273  Parameter param;
1274  param.partition(reader_data.ddsSubscriptionData.partition);
1275  add_param(param_list, param);
1276  }
1277 
1278  if (not_default(reader_data.ddsSubscriptionData.topic_data)) {
1279  Parameter param;
1280  param.topic_data(reader_data.ddsSubscriptionData.topic_data);
1281  add_param(param_list, param);
1282  }
1283 
1284  if (not_default(reader_data.ddsSubscriptionData.group_data)) {
1285  Parameter param;
1286  param.group_data(reader_data.ddsSubscriptionData.group_data);
1287  add_param(param_list, param);
1288  }
1289 
1290  add_DataRepresentationQos(param_list, reader_data.ddsSubscriptionData.representation.value, true);
1291 
1292  if (not_default(reader_data.ddsSubscriptionData.type_consistency)) {
1293  Parameter param;
1294  param.type_consistency(reader_data.ddsSubscriptionData.type_consistency);
1295  add_param(param_list, param);
1296  }
1297 
1298  {
1299  Parameter param;
1300  param.guid(reader_data.readerProxy.remoteReaderGuid);
1301  param._d(PID_ENDPOINT_GUID);
1302  add_param(param_list, param);
1303  }
1304 
1305  if (not_default(reader_data.contentFilterProperty)) {
1306  Parameter param;
1307  DCPS::ContentFilterProperty_t cfprop_copy = reader_data.contentFilterProperty;
1308  if (!std::strlen(cfprop_copy.filterClassName)) {
1309  cfprop_copy.filterClassName = "DDSSQL";
1310  }
1311  param.content_filter_property(cfprop_copy);
1312  add_param(param_list, param);
1313  }
1314 
1315  CORBA::ULong i;
1316  CORBA::ULong locator_len = reader_data.readerProxy.allLocators.length();
1317  // Serialize from allLocators, rather than the unicastLocatorList
1318  // and multicastLocatorList. This allows OpenDDS transports to be
1319  // serialized in the proper order using custom PIDs.
1320  for (i = 0; i < locator_len; ++i) {
1321  // Each locator has a blob of interest
1322  const DCPS::TransportLocator& tl = reader_data.readerProxy.allLocators[i];
1323  // If this is an rtps udp transport
1324  if (!std::strcmp(tl.transport_type, "rtps_udp")) {
1325  // Append the locator's deserialized locator and an RTPS PID
1326  add_param_rtps_locator(param_list, tl, map);
1327  // Otherwise, this is an OpenDDS, custom transport
1328  } else {
1329  // Append the blob and a custom PID
1330  add_param_dcps_locator(param_list, tl);
1331  if (!std::strcmp(tl.transport_type, "multicast")) {
1332  ACE_DEBUG((LM_WARNING,
1333  ACE_TEXT("(%P|%t) to_param_list(drd) - ")
1334  ACE_TEXT("Multicast transport with RTPS ")
1335  ACE_TEXT("discovery has known issues")));
1336  }
1337  }
1338  }
1339 
1340  CORBA::ULong num_associations =
1341  reader_data.readerProxy.associatedWriters.length();
1342  for (i = 0; i < num_associations; ++i) {
1343  Parameter param;
1344  param.guid(reader_data.readerProxy.associatedWriters[i]);
1346  add_param(param_list, param);
1347  }
1348  return true;
1349 }
#define ACE_DEBUG(X)
const ParameterId_t PID_TYPE_NAME
Definition: RtpsCore.idl:255
const short RELIABLE
Definition: RtpsCore.idl:142
const ParameterId_t PID_TOPIC_NAME
Definition: RtpsCore.idl:254
ACE_CDR::ULong ULong
const short BEST_EFFORT
Definition: RtpsCore.idl:141
void add_DataRepresentationQos(ParameterList &param_list, const DDS::DataRepresentationIdSeq &ids, bool reader)
const ParameterId_t PID_OPENDDS_ASSOCIATED_WRITER
Definition: RtpsCore.idl:338
ACE_TEXT("TCP_Factory")
const ParameterId_t PID_ENDPOINT_GUID
Definition: RtpsCore.idl:296

◆ to_param_list() [10/14]

OpenDDS_Rtps_Export bool OpenDDS::RTPS::ParameterListConverter::to_param_list ( const DDS::Security::EndpointSecurityInfo info,
ParameterList param_list 
)

Definition at line 1521 of file ParameterListConverter.cpp.

References OpenDDS::RTPS::Parameter::endpoint_security_info.

1523 {
1524  Parameter param;
1525  param.endpoint_security_info(info);
1526  add_param(param_list, param);
1527  return true;
1528 }

◆ to_param_list() [11/14]

OpenDDS_Rtps_Export bool OpenDDS::RTPS::ParameterListConverter::to_param_list ( const DDS::Security::DataTags tags,
ParameterList param_list 
)

Definition at line 1553 of file ParameterListConverter.cpp.

References OpenDDS::RTPS::Parameter::data_tags.

1555 {
1556  Parameter param;
1557  param.data_tags(tags);
1558  add_param(param_list, param);
1559  return true;
1560 }

◆ to_param_list() [12/14]

OpenDDS_Rtps_Export bool OpenDDS::RTPS::ParameterListConverter::to_param_list ( const DiscoveredPublication_SecurityWrapper wrapper,
ParameterList param_list,
bool  use_xtypes,
const XTypes::TypeInformation type_info,
bool  map 
)

Definition at line 1584 of file ParameterListConverter.cpp.

References OpenDDS::RTPS::DiscoveredPublication_SecurityWrapper::data, OpenDDS::RTPS::DiscoveredPublication_SecurityWrapper::data_tags, OpenDDS::RTPS::DiscoveredPublication_SecurityWrapper::security_info, and to_param_list().

1589 {
1590  bool result = to_param_list(wrapper.data, param_list, use_xtypes, type_info, map);
1591 
1592  to_param_list(wrapper.security_info, param_list);
1593  to_param_list(wrapper.data_tags, param_list);
1594 
1595  return result;
1596 }
bool to_param_list(const ICE::AgentInfoMap &ai_map, ParameterList &param_list)

◆ to_param_list() [13/14]

OpenDDS_Rtps_Export bool OpenDDS::RTPS::ParameterListConverter::to_param_list ( const DiscoveredSubscription_SecurityWrapper wrapper,
ParameterList param_list,
bool  use_xtypes,
const XTypes::TypeInformation type_info,
bool  map 
)

Definition at line 1610 of file ParameterListConverter.cpp.

References OpenDDS::RTPS::DiscoveredSubscription_SecurityWrapper::data, OpenDDS::RTPS::DiscoveredSubscription_SecurityWrapper::data_tags, OpenDDS::RTPS::DiscoveredSubscription_SecurityWrapper::security_info, and to_param_list().

1615 {
1616  bool result = to_param_list(wrapper.data, param_list, use_xtypes, type_info, map);
1617 
1618  to_param_list(wrapper.security_info, param_list);
1619  to_param_list(wrapper.data_tags, param_list);
1620 
1621  return result;
1622 }
bool to_param_list(const ICE::AgentInfoMap &ai_map, ParameterList &param_list)

◆ to_param_list() [14/14]

OpenDDS_Rtps_Export bool OpenDDS::RTPS::ParameterListConverter::to_param_list ( const ICE::AgentInfoMap &  ai_map,
ParameterList param_list 
)

Definition at line 1636 of file ParameterListConverter.cpp.

References OpenDDS::DCPS::Locator_t::address, OpenDDS::DCPS::address_to_locator(), OpenDDS::RTPS::IceGeneral_t::agent_type, OpenDDS::ICE::AgentInfo::candidates, OpenDDS::RTPS::IceCandidate_t::foundation, OpenDDS::RTPS::Parameter::ice_candidate, OpenDDS::RTPS::Parameter::ice_general, OpenDDS::RTPS::IceGeneral_t::key, OpenDDS::RTPS::IceCandidate_t::key, OpenDDS::RTPS::IceCandidate_t::locator, OpenDDS::ICE::AgentInfo::password, OpenDDS::RTPS::IceGeneral_t::password, OpenDDS::RTPS::IceCandidate_t::priority, OpenDDS::ICE::AgentInfo::type, OpenDDS::RTPS::IceCandidate_t::type, OpenDDS::ICE::AgentInfo::username, and OpenDDS::RTPS::IceGeneral_t::username.

1638 {
1639  for (ICE::AgentInfoMap::const_iterator map_pos = ai_map.begin(), limit = ai_map.end(); map_pos != limit; ++map_pos) {
1640  const ICE::AgentInfo& agent_info = map_pos->second;
1641  IceGeneral_t ice_general;
1642  ice_general.key = map_pos->first.c_str();
1643  ice_general.agent_type = agent_info.type;
1644  ice_general.username = agent_info.username.c_str();
1645  ice_general.password = agent_info.password.c_str();
1646 
1647  Parameter param_general;
1648  param_general.ice_general(ice_general);
1649  add_param(param_list, param_general);
1650 
1651  for (ICE::AgentInfo::CandidatesType::const_iterator pos = agent_info.candidates.begin(),
1652  limit = agent_info.candidates.end(); pos != limit; ++pos) {
1653  IceCandidate_t ice_candidate;
1654  ice_candidate.key = map_pos->first.c_str();
1655  address_to_locator(ice_candidate.locator, pos->address);
1656  ice_candidate.foundation = pos->foundation.c_str();
1657  ice_candidate.priority = pos->priority;
1658  ice_candidate.type = pos->type;
1659 
1660  Parameter param;
1661  param.ice_candidate(ice_candidate);
1662  add_param(param_list, param);
1663  }
1664  }
1665 
1666  return true;
1667 }
OpenDDS_Dcps_Export void address_to_locator(Locator_t &locator, const ACE_INET_Addr &addr)