From 76cf8a26c47e3f9c865a8f7f447d9bd2f42afca3 Mon Sep 17 00:00:00 2001 From: Robert Greig Date: Fri, 5 Jan 2007 12:11:56 +0000 Subject: Qpid-238. Refactored out the ugly GetExchangeName method. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@493003 13f79535-47bb-0310-9956-ffa450edef68 --- .../Client/Message/AbstractQmsMessage.cs | 57 ++++++++++------------ 1 file changed, 25 insertions(+), 32 deletions(-) (limited to 'dotnet/Qpid.Client/Client') diff --git a/dotnet/Qpid.Client/Client/Message/AbstractQmsMessage.cs b/dotnet/Qpid.Client/Client/Message/AbstractQmsMessage.cs index fe0915d4d6..85ac497ad2 100644 --- a/dotnet/Qpid.Client/Client/Message/AbstractQmsMessage.cs +++ b/dotnet/Qpid.Client/Client/Message/AbstractQmsMessage.cs @@ -172,17 +172,40 @@ namespace Qpid.Client.Message } } + /// + /// Decodes the replyto field if one is set. + /// + /// Splits a replyto field containing an exchange name followed by a ':', followed by a routing key into the exchange name and + /// routing key seperately. The exchange name may be empty in which case the empty string is returned. If the exchange name is + /// empty the replyto field is expected to being with ':'. + /// + /// Anyhting other than a two part replyto field sperated with a ':' will result in an exception. + /// + /// + /// A destination initialized to the replyto location if a replyto field was set, or an empty destination otherwise. private Dest ReadReplyToHeader() { string replyToEncoding = ContentHeaderProperties.ReplyTo; + if (replyToEncoding == null) { return new Dest(); } else { - string routingKey; - string exchangeName = GetExchangeName(replyToEncoding, out routingKey); + // Split the replyto field on a ':' + string[] split = replyToEncoding.Split(':'); + + // Ensure that the replyto field argument only consisted of two parts. + if (split.Length != 2) + { + throw new QpidException("Illegal value in ReplyTo property: " + replyToEncoding); + } + + // Extract the exchange name and routing key from the split replyto field. + string exchangeName = split[0]; + string routingKey = split[1]; + return new Dest(exchangeName, routingKey); } } @@ -193,36 +216,6 @@ namespace Qpid.Client.Message ContentHeaderProperties.ReplyTo = encodedDestination; } - /// - /// Splits a replyto field containing an exchange name followed by a ':', followed by a routing key into the exchange name and - /// routing key seperately. The exchange name may be empty in which case the empty string is returned. If the exchange name is - /// empty the replyto field is expected to being with ':'. - /// - /// Anyhting other than a two part replyto field sperated with a ':' will result in an exception. - /// - /// - /// The encoded replyto field to split. - /// A reference to update with the extracted routing key. - /// - /// The exchange name or the empty string when no exchange name is specified. - private static string GetExchangeName(string replyToEncoding, out string routingKey) - { - // Split the replyto field on a ':' - string[] split = replyToEncoding.Split(':'); - - // Ensure that the replyto field argument only consisted of two parts. - if (split.Length != 2) - { - throw new QpidException("Illegal value in ReplyTo property: " + replyToEncoding); - } - - // Extract the exchange name and routing key from the split replyto field. - string exchangeName = split[0]; - routingKey = split[1]; - - return exchangeName; - } - public DeliveryMode DeliveryMode { get -- cgit v1.2.1