QOS_Common.cpp
Go to the documentation of this file.00001 #include "QOS_Common.h"
00002
00003 OPENDDS_BEGIN_VERSIONED_NAMESPACE_DECL
00004
00005 void
00006 QosCommon::get_durability_kind (const ::dds::durabilityKind kind,
00007 ::DDS::DurabilityQosPolicyKind& dds_kind)
00008 {
00009 switch (kind.integral ())
00010 {
00011 case ::dds::durabilityKind::VOLATILE_DURABILITY_QOS_l:
00012 dds_kind = ::DDS::VOLATILE_DURABILITY_QOS;
00013 break;
00014 case ::dds::durabilityKind::TRANSIENT_LOCAL_DURABILITY_QOS_l:
00015 dds_kind = ::DDS::TRANSIENT_LOCAL_DURABILITY_QOS;
00016 break;
00017 case ::dds::durabilityKind::TRANSIENT_DURABILITY_QOS_l:
00018 dds_kind = ::DDS::TRANSIENT_DURABILITY_QOS;
00019 break;
00020 case ::dds::durabilityKind::PERSISTENT_DURABILITY_QOS_l:
00021 dds_kind = ::DDS::PERSISTENT_DURABILITY_QOS;
00022 break;
00023 default:
00024 ACE_ERROR ((LM_DEBUG,
00025 ACE_TEXT ("QosCommon::get_durability_kind - ")
00026 ACE_TEXT ("Unknown durability kind found <%d>; returning VOLATILE_DURABILITY_QOS\n"),
00027 kind.integral ()));
00028 dds_kind = ::DDS::VOLATILE_DURABILITY_QOS;
00029 break;
00030 }
00031 }
00032
00033 void
00034 QosCommon::get_history_kind (const ::dds::historyKind kind,
00035 ::DDS::HistoryQosPolicyKind& dds_kind)
00036 {
00037 switch (kind.integral ())
00038 {
00039 case ::dds::historyKind::KEEP_ALL_HISTORY_QOS_l:
00040 dds_kind = ::DDS::KEEP_ALL_HISTORY_QOS;
00041 break;
00042 case ::dds::historyKind::KEEP_LAST_HISTORY_QOS_l:
00043 dds_kind = ::DDS::KEEP_LAST_HISTORY_QOS;
00044 break;
00045 default:
00046 ACE_ERROR ((LM_DEBUG,
00047 ACE_TEXT ("QosCommon::get_history_kind - ")
00048 ACE_TEXT ("Unknown history kind found <%d>; returning KEEP_ALL_HISTORY_QOS\n"),
00049 kind.integral ()));
00050 dds_kind = ::DDS::KEEP_ALL_HISTORY_QOS;
00051 break;
00052 }
00053 }
00054
00055 void
00056 QosCommon::get_duration (::DDS::Duration_t& duration, const ACE_TCHAR * sec, const ACE_TCHAR * nsec)
00057 {
00058 if (ACE_OS::strcmp (sec, "DURATION_INFINITY") == 0 ||
00059 ACE_OS::strcmp (sec, "DURATION_INFINITE_SEC") == 0)
00060 {
00061 duration.sec = 0x7fffffff;
00062 }
00063 else
00064 {
00065 duration.sec = ACE_OS::atoi (sec);
00066 }
00067
00068 if (ACE_OS::strcmp (nsec, "DURATION_INFINITY") == 0 ||
00069 ACE_OS::strcmp (nsec, "DURATION_INFINITE_NSEC") == 0)
00070 {
00071 duration.nanosec = 0x7fffffff;
00072 }
00073 else
00074 {
00075 duration.nanosec = ACE_OS::atoi (nsec);
00076 }
00077 }
00078
00079 ::CORBA::Long
00080 QosCommon::get_qos_long(const ACE_TCHAR* value)
00081 {
00082 if (ACE_OS::strcmp (value, "LENGTH_UNLIMITED") == 0)
00083 {
00084 return -1;
00085 }
00086 else
00087 {
00088 return atoi (value);
00089 }
00090 }
00091
00092 void
00093 QosCommon::get_liveliness_kind (const ::dds::livelinessKind kind,
00094 ::DDS::LivelinessQosPolicyKind& dds_kind)
00095 {
00096 switch (kind.integral ())
00097 {
00098 case ::dds::livelinessKind::AUTOMATIC_LIVELINESS_QOS_l:
00099 dds_kind = ::DDS::AUTOMATIC_LIVELINESS_QOS;
00100 break;
00101 case ::dds::livelinessKind::MANUAL_BY_PARTICIPANT_LIVELINESS_QOS_l:
00102 dds_kind = ::DDS::MANUAL_BY_PARTICIPANT_LIVELINESS_QOS;
00103 break;
00104 case ::dds::livelinessKind::MANUAL_BY_TOPIC_LIVELINESS_QOS_l:
00105 dds_kind = ::DDS::MANUAL_BY_TOPIC_LIVELINESS_QOS;
00106 break;
00107 default:
00108 ACE_ERROR ((LM_DEBUG,
00109 ACE_TEXT ("QosCommon::get_liveliness_kind - ")
00110 ACE_TEXT ("Unknown liveliness kind found <%d>; returning AUTOMATIC_LIVELINESS_QOS\n"),
00111 kind.integral ()));
00112 dds_kind = ::DDS::AUTOMATIC_LIVELINESS_QOS;
00113 break;
00114 }
00115 }
00116
00117 void
00118 QosCommon::get_realiability_kind (const ::dds::reliabilityKind kind,
00119 ::DDS::ReliabilityQosPolicyKind& dds_kind)
00120 {
00121 switch (kind.integral ())
00122 {
00123 case ::dds::reliabilityKind::BEST_EFFORT_RELIABILITY_QOS_l:
00124 dds_kind = ::DDS::BEST_EFFORT_RELIABILITY_QOS;
00125 break;
00126 case ::dds::reliabilityKind::RELIABLE_RELIABILITY_QOS_l:
00127 dds_kind = ::DDS::RELIABLE_RELIABILITY_QOS;
00128 break;
00129 default:
00130 ACE_ERROR ((LM_DEBUG,
00131 ACE_TEXT ("QosCommon::get_liveliness_kind - ")
00132 ACE_TEXT ("Unknown reliability kind found <%d>; returning BEST_EFFORT_RELIABILITY_QOS\n"),
00133 kind.integral ()));
00134 dds_kind = ::DDS::BEST_EFFORT_RELIABILITY_QOS;
00135 break;
00136 }
00137 }
00138
00139 void
00140 QosCommon::get_destination_order_kind (const ::dds::destinationOrderKind kind,
00141 ::DDS::DestinationOrderQosPolicyKind& dds_kind)
00142 {
00143 switch (kind.integral ())
00144 {
00145 case ::dds::destinationOrderKind::BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS_l:
00146 dds_kind = ::DDS::BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS;
00147 break;
00148 case ::dds::destinationOrderKind::BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS_l:
00149 dds_kind = ::DDS::BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS;
00150 break;
00151 default:
00152 ACE_ERROR ((LM_DEBUG,
00153 ACE_TEXT ("QosCommon::get_destination_order_kind - ")
00154 ACE_TEXT ("Unknown destination order kind found <%d>; returning BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS\n"),
00155 kind.integral ()));
00156 dds_kind = ::DDS::BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS;
00157 break;
00158 }
00159 }
00160
00161 void
00162 QosCommon::get_ownership_kind (const ::dds::ownershipKind kind,
00163 ::DDS::OwnershipQosPolicyKind& dds_kind)
00164 {
00165 switch (kind.integral ())
00166 {
00167 case ::dds::ownershipKind::SHARED_OWNERSHIP_QOS_l:
00168 dds_kind = ::DDS::SHARED_OWNERSHIP_QOS;
00169 break;
00170 case ::dds::ownershipKind::EXCLUSIVE_OWNERSHIP_QOS_l:
00171 dds_kind = ::DDS::EXCLUSIVE_OWNERSHIP_QOS;
00172 break;
00173 default:
00174 ACE_ERROR ((LM_DEBUG,
00175 ACE_TEXT ("QosCommon::get_ownership_kind - ")
00176 ACE_TEXT ("Unknown ownership kind found <%d>; returning SHARED_OWNERSHIP_QOS\n"),
00177 kind.integral ()));
00178 dds_kind = ::DDS::SHARED_OWNERSHIP_QOS;
00179 break;
00180 }
00181 }
00182
00183 OPENDDS_END_VERSIONED_NAMESPACE_DECL