diff options
author | Robert Greig <rgreig@apache.org> | 2007-01-05 12:11:56 +0000 |
---|---|---|
committer | Robert Greig <rgreig@apache.org> | 2007-01-05 12:11:56 +0000 |
commit | 76cf8a26c47e3f9c865a8f7f447d9bd2f42afca3 (patch) | |
tree | 8200d583e5bc154171884632823be1cf1d6307e9 | |
parent | 6e2de8b2e5b3a7e1558ba5328431300a87953a39 (diff) | |
download | qpid-python-76cf8a26c47e3f9c865a8f7f447d9bd2f42afca3.tar.gz |
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
-rw-r--r-- | dotnet/Qpid.Client/Client/Message/AbstractQmsMessage.cs | 57 |
1 files changed, 25 insertions, 32 deletions
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 } } + /// <summary> + /// 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. + /// </summary> + /// + /// <returns>A destination initialized to the replyto location if a replyto field was set, or an empty destination otherwise.</returns> 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; } - /// <summary> - /// 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. - /// </summary> - /// - /// <param name="replyToEncoding">The encoded replyto field to split.</param> - /// <param name="routingKey">A reference to update with the extracted routing key.</param> - /// - /// <returns>The exchange name or the empty string when no exchange name is specified.</returns> - 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 |