00001 /** 00002 * @author Marcel Smit (msmit@remedy.nl) 00003 * 00004 * 00005 * Converting most common QOS XML settings to IDL QOS. 00006 * 00007 */ 00008 #ifndef QOS_COMMON_H 00009 #define QOS_COMMON_H 00010 00011 #include /**/ "ace/pre.h" 00012 00013 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00014 # pragma once 00015 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00016 00017 #include "dds/DdsDcpsInfrastructureC.h" 00018 #include "dds_qos.hpp" 00019 00020 OPENDDS_BEGIN_VERSIONED_NAMESPACE_DECL 00021 00022 class QosCommon 00023 { 00024 public: 00025 00026 //@{ 00027 /** Operations which convert QOS XML kinds to QOS IDL kinds. */ 00028 00029 static void get_durability_kind (const ::dds::durabilityKind kind, 00030 ::DDS::DurabilityQosPolicyKind& dds_kind); 00031 static void get_history_kind (const ::dds::historyKind kind, 00032 ::DDS::HistoryQosPolicyKind& dds_kind); 00033 static void get_liveliness_kind (const ::dds::livelinessKind kind, 00034 ::DDS::LivelinessQosPolicyKind& dds_kind); 00035 static void get_realiability_kind (const dds::reliabilityKind kind, 00036 ::DDS::ReliabilityQosPolicyKind& dds_kind); 00037 static void get_destination_order_kind (const ::dds::destinationOrderKind kind, 00038 ::DDS::DestinationOrderQosPolicyKind& dds_kind); 00039 00040 static void get_ownership_kind (::dds::ownershipKind kind, 00041 ::DDS::OwnershipQosPolicyKind& dds_kind); 00042 //@} 00043 00044 /** 00045 * get_duration 00046 * 00047 * The QOS XML seconds and nano seconds tags may contain text 00048 * (DURATION_INFINITY, DURATION_INFINITY_SEC, DURATION_INFINITY_NSEC). These 00049 * values need to be converted to a numeric value. 00050 * 00051 */ 00052 static void get_duration (::DDS::Duration_t& duration, const ACE_TCHAR * sec, const ACE_TCHAR * nsec); 00053 00054 /** 00055 * get_qos_long 00056 * 00057 * The QOS XML integer tags may contain text (LENGTH_UNLIMITED). 00058 * This value need to be converted to a numeric value. 00059 * 00060 */ 00061 static ::CORBA::Long get_qos_long (const ACE_TCHAR * value); 00062 00063 }; 00064 00065 OPENDDS_END_VERSIONED_NAMESPACE_DECL 00066 00067 #include /**/ "ace/post.h" 00068 #endif /* QOS_COMMON_H */