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 class QosCommon 00021 { 00022 public: 00023 00024 //@{ 00025 /** Operations which convert QOS XML kinds to QOS IDL kinds. */ 00026 00027 static void get_durability_kind (const ::dds::durabilityKind kind, 00028 ::DDS::DurabilityQosPolicyKind& dds_kind); 00029 static void get_history_kind (const ::dds::historyKind kind, 00030 ::DDS::HistoryQosPolicyKind& dds_kind); 00031 static void get_liveliness_kind (const ::dds::livelinessKind kind, 00032 ::DDS::LivelinessQosPolicyKind& dds_kind); 00033 static void get_realiability_kind (const dds::reliabilityKind kind, 00034 ::DDS::ReliabilityQosPolicyKind& dds_kind); 00035 static void get_destination_order_kind (const ::dds::destinationOrderKind kind, 00036 ::DDS::DestinationOrderQosPolicyKind& dds_kind); 00037 00038 static void get_ownership_kind (::dds::ownershipKind kind, 00039 ::DDS::OwnershipQosPolicyKind& dds_kind); 00040 //@} 00041 00042 /** 00043 * get_duration 00044 * 00045 * The QOS XML seconds and nano seconds tags may contain text 00046 * (DURATION_INFINITY, DURATION_INFINITY_SEC, DURATION_INFINITY_NSEC). These 00047 * values need to be converted to a numeric value. 00048 * 00049 */ 00050 static void get_duration (::DDS::Duration_t& duration, const ACE_TCHAR * sec, const ACE_TCHAR * nsec); 00051 00052 /** 00053 * get_qos_long 00054 * 00055 * The QOS XML integer tags may contain text (LENGTH_UNLIMITED). 00056 * This value need to be converted to a numeric value. 00057 * 00058 */ 00059 static ::CORBA::Long get_qos_long (const ACE_TCHAR * value); 00060 00061 }; 00062 00063 #include /**/ "ace/post.h" 00064 #endif /* QOS_COMMON_H */