From f36a63ffc450fa1c5b84f2edd17eb286e8f833c0 Mon Sep 17 00:00:00 2001 From: Johnny Willemsen Date: Mon, 13 Aug 2007 10:55:57 +0000 Subject: Mon Aug 12 10:55;12 UTC 2007 Johnny Willemsen --- ACE/ChangeLog | 11 ++++ ACE/ace/CDR_Stream.cpp | 2 +- ACE/ace/OS_QoS.h | 149 ++++++++++++++++++++++++++++++++++--------------- 3 files changed, 115 insertions(+), 47 deletions(-) diff --git a/ACE/ChangeLog b/ACE/ChangeLog index 413e2bc22ce..10c54869d2d 100644 --- a/ACE/ChangeLog +++ b/ACE/ChangeLog @@ -1,3 +1,14 @@ +Mon Aug 12 10:55;12 UTC 2007 Johnny Willemsen + + * ace/CDR_Stream.cpp: + Const change + + * ace/OS_QoS.h: + Instead of making all ACE_ defines dependent on winsock2, just for each + one check if the non ACE define exists or not. If it exists, use it, if + not, use a special ACE value. This makes it easier to support QoS with + MinGW. + Mon Aug 12 07:03:12 UTC 2007 Johnny Willemsen * ace/Log_Msg_IPC.cpp: diff --git a/ACE/ace/CDR_Stream.cpp b/ACE/ace/CDR_Stream.cpp index 515a9a222fa..07d4b68ce67 100644 --- a/ACE/ace/CDR_Stream.cpp +++ b/ACE/ace/CDR_Stream.cpp @@ -175,7 +175,7 @@ ACE_OutputCDR::grow_and_adjust (size_t size, if (minsize < cursize) minsize = cursize; - const size_t newsize = ACE_CDR::next_size (minsize); + size_t const newsize = ACE_CDR::next_size (minsize); this->good_bit_ = false; ACE_Message_Block* tmp = 0; diff --git a/ACE/ace/OS_QoS.h b/ACE/ace/OS_QoS.h index f8f13a6bf6d..a0b4fbe2d1e 100644 --- a/ACE/ace/OS_QoS.h +++ b/ACE/ace/OS_QoS.h @@ -27,75 +27,132 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL -#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) -#if defined (ACE_HAS_WINSOCK2_GQOS) +#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) && defined (ACE_HAS_WINSOCK2_GQOS) typedef SERVICETYPE ACE_SERVICE_TYPE; #else typedef unsigned long ACE_SERVICE_TYPE; -#endif /* ACE_HAS_WINSOCK2_GQOS */ +#endif /* ACE_HAS_WINSOCK2 && ACE_HAS_WINSOCK2 != 0 */ +#if defined (WSA_FLAG_OVERLAPPED) +# define ACE_OVERLAPPED_SOCKET_FLAG WSA_FLAG_OVERLAPPED +#else +# define ACE_OVERLAPPED_SOCKET_FLAG 0 +#endif -#define ACE_OVERLAPPED_SOCKET_FLAG WSA_FLAG_OVERLAPPED +#if defined (XP1_QOS_SUPPORTED) +# define ACE_XP1_QOS_SUPPORTED XP1_QOS_SUPPORTED +#else +# define ACE_XP1_QOS_SUPPORTED 0x00002000 +#endif -#define ACE_XP1_QOS_SUPPORTED XP1_QOS_SUPPORTED -#define ACE_XP1_SUPPORT_MULTIPOINT XP1_SUPPORT_MULTIPOINT +#if defined (XP1_SUPPORT_MULTIPOINT) +# define ACE_XP1_SUPPORT_MULTIPOINT XP1_SUPPORT_MULTIPOINT +#else +# define ACE_XP1_SUPPORT_MULTIPOINT 0x00000400 +#endif + +#if defined (WSABASEERR) +# define ACE_BASEERR WSABASEERR +#else +# define ACE_BASEERR 10000 +#endif -#define ACE_BASEERR WSABASEERR -#define ACE_ENOBUFS WSAENOBUFS -#define ACE_FROM_PROTOCOL_INFO FROM_PROTOCOL_INFO -#define ACE_FLAG_MULTIPOINT_C_ROOT WSA_FLAG_MULTIPOINT_C_ROOT -#define ACE_FLAG_MULTIPOINT_C_LEAF WSA_FLAG_MULTIPOINT_C_LEAF -#define ACE_FLAG_MULTIPOINT_D_ROOT WSA_FLAG_MULTIPOINT_D_ROOT -#define ACE_FLAG_MULTIPOINT_D_LEAF WSA_FLAG_MULTIPOINT_D_LEAF +#if defined (WSAENOBUFS) +# define ACE_ENOBUFS WSAENOBUFS +#else +# define ACE_ENOBUFS (ACE_BASEERR+55) +#endif -#define ACE_QOS_NOT_SPECIFIED QOS_NOT_SPECIFIED -#define ACE_SERVICETYPE_NOTRAFFIC SERVICETYPE_NOTRAFFIC -#define ACE_SERVICETYPE_CONTROLLEDLOAD SERVICETYPE_CONTROLLEDLOAD -#define ACE_SERVICETYPE_GUARANTEED SERVICETYPE_GUARANTEED +#if defined (FROM_PROTOCOL_INFO) +# define ACE_FROM_PROTOCOL_INFO FROM_PROTOCOL_INFO +#else +# define ACE_FROM_PROTOCOL_INFO (-1) +#endif -#define ACE_JL_SENDER_ONLY JL_SENDER_ONLY -#define ACE_JL_BOTH JL_BOTH +#if defined (WSA_FLAG_MULTIPOINT_C_ROOT) +# define ACE_FLAG_MULTIPOINT_C_ROOT WSA_FLAG_MULTIPOINT_C_ROOT +#else +# define ACE_FLAG_MULTIPOINT_C_ROOT 0x02 +#endif -#define ACE_SIO_GET_QOS SIO_GET_QOS -#define ACE_SIO_MULTIPOINT_LOOPBACK SIO_MULTIPOINT_LOOPBACK -#define ACE_SIO_MULTICAST_SCOPE SIO_MULTICAST_SCOPE -#define ACE_SIO_SET_QOS SIO_SET_QOS +#if defined (WSA_FLAG_MULTIPOINT_C_LEAF) +# define ACE_FLAG_MULTIPOINT_C_LEAF WSA_FLAG_MULTIPOINT_C_LEAF +#else +# define ACE_FLAG_MULTIPOINT_C_LEAF 0x04 +#endif +#if defined (WSA_FLAG_MULTIPOINT_D_ROOT) +# define ACE_FLAG_MULTIPOINT_D_ROOT WSA_FLAG_MULTIPOINT_D_ROOT #else -typedef unsigned long ACE_SERVICE_TYPE; +# define ACE_FLAG_MULTIPOINT_D_ROOT 0x08 +#endif -#define ACE_OVERLAPPED_SOCKET_FLAG 0 -#define ACE_XP1_QOS_SUPPORTED 0x00002000 -#define ACE_XP1_SUPPORT_MULTIPOINT 0x00000400 +#if defined (WSA_FLAG_MULTIPOINT_D_LEAF) +# define ACE_FLAG_MULTIPOINT_D_LEAF WSA_FLAG_MULTIPOINT_D_LEAF +#else +# define ACE_FLAG_MULTIPOINT_D_LEAF 0x10 +#endif -#define ACE_BASEERR 10000 -#define ACE_ENOBUFS (ACE_BASEERR+55) +#if defined (QOS_NOT_SPECIFIED) +# define ACE_QOS_NOT_SPECIFIED QOS_NOT_SPECIFIED +#else +# define ACE_QOS_NOT_SPECIFIED 0xFFFFFFFF +#endif -#define ACE_FROM_PROTOCOL_INFO (-1) +#if defined (SERVICETYPE_NOTRAFFIC) +# define ACE_SERVICETYPE_NOTRAFFIC SERVICETYPE_NOTRAFFIC +#else +# define ACE_SERVICETYPE_NOTRAFFIC 0x00000000 /* No data in this */ + /* direction. */ +#endif -#define ACE_FLAG_MULTIPOINT_C_ROOT 0x02 -#define ACE_FLAG_MULTIPOINT_C_LEAF 0x04 -#define ACE_FLAG_MULTIPOINT_D_ROOT 0x08 -#define ACE_FLAG_MULTIPOINT_D_LEAF 0x10 +#if defined (SERVICETYPE_CONTROLLEDLOAD) +# define ACE_SERVICETYPE_CONTROLLEDLOAD SERVICETYPE_CONTROLLEDLOAD +#else +# define ACE_SERVICETYPE_CONTROLLEDLOAD 0x00000001 /* Controlled Load. */ +#endif -#define ACE_QOS_NOT_SPECIFIED 0xFFFFFFFF -#define ACE_SERVICETYPE_NOTRAFFIC 0x00000000 /* No data in this */ - /* direction. */ -#define ACE_SERVICETYPE_CONTROLLEDLOAD 0x00000001 /* Controlled Load. */ -#define ACE_SERVICETYPE_GUARANTEED 0x00000003 /* Guaranteed. */ +#if defined (SERVICETYPE_GUARANTEED) +# define ACE_SERVICETYPE_GUARANTEED SERVICETYPE_GUARANTEED +#else +# define ACE_SERVICETYPE_GUARANTEED 0x00000003 /* Guaranteed. */ +#endif -#define ACE_JL_SENDER_ONLY 0x01 -#define ACE_JL_BOTH 0x04 +#if defined (JL_SENDER_ONLY) +# define ACE_JL_SENDER_ONLY JL_SENDER_ONLY +#else +# define ACE_JL_SENDER_ONLY 0x01 +#endif -#define ACE_SIO_GET_QOS (0x40000000 | 0x08000000 | 7) -#define ACE_SIO_MULTIPOINT_LOOPBACK (0x08000000 | 9) -#define ACE_SIO_MULTICAST_SCOPE (0x08000000 | 10) -#define ACE_SIO_SET_QOS (0x08000000 | 11) +#if defined (JL_BOTH) +# define ACE_JL_BOTH JL_BOTH +#else +# define ACE_JL_BOTH 0x04 +#endif -#endif /* ACE_HAS_WINSOCK2 && ACE_HAS_WINSOCK2 != 0 */ +#if defined (SIO_GET_QOS) +# define ACE_SIO_GET_QOS SIO_GET_QOS +#else +# define ACE_SIO_GET_QOS (0x40000000 | 0x08000000 | 7) +#endif +#if defined (SIO_MULTIPOINT_LOOPBACK) +# define ACE_SIO_MULTIPOINT_LOOPBACK SIO_MULTIPOINT_LOOPBACK +#else +# define ACE_SIO_MULTIPOINT_LOOPBACK (0x08000000 | 9) +#endif +#if defined (SIO_MULTICAST_SCOPE) +# define ACE_SIO_MULTICAST_SCOPE SIO_MULTICAST_SCOPE +#else +# define ACE_SIO_MULTICAST_SCOPE (0x08000000 | 10) +#endif +#if defined (SIO_SET_QOS) +# define ACE_SIO_SET_QOS SIO_SET_QOS +#else +# define ACE_SIO_SET_QOS (0x08000000 | 11) +#endif /** * @class ACE_Flow_Spec -- cgit v1.2.1