| /* | |
| * Licensed to the Apache Software Foundation (ASF) under one | |
| * or more contributor license agreements. See the NOTICE file | |
| * distributed with this work for additional information | |
| * regarding copyright ownership. The ASF licenses this file | |
| * to you under the Apache License, Version 2.0 (the | |
| * "License"); you may not use this file except in compliance | |
| * with the License. You may obtain a copy of the License at | |
| * | |
| * http://www.apache.org/licenses/LICENSE-2.0 | |
| * | |
| * Unless required by applicable law or agreed to in writing, | |
| * software distributed under the License is distributed on an | |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| * KIND, either express or implied. See the License for the | |
| * specific language governing permissions and limitations | |
| * under the License. | |
| */ | |
| namespace Apache.Qpid.Samples.Integration | |
| { | |
| using System; | |
| using System.Collections; | |
| using System.Collections.Generic; | |
| using System.Diagnostics; | |
| using System.IO; | |
| using System.ServiceModel; | |
| using System.ServiceModel.Channels; | |
| using System.ServiceModel.Description; | |
| using System.Text; | |
| using System.Xml; | |
| public class Options | |
| { | |
| private string broker; | |
| private int port; | |
| private int messageCount; | |
| private EndpointAddress address; | |
| private TimeSpan timeout; | |
| private string content; | |
| public Options(string[] args) | |
| { | |
| this.broker = "127.0.0.1"; | |
| this.port = 5672; | |
| this.messageCount = 1; | |
| this.timeout = TimeSpan.FromSeconds(0); | |
| Parse(args); | |
| } | |
| private void Parse(string[] args) | |
| { | |
| int argCount = args.Length; | |
| int current = 0; | |
| bool typeSelected = false; | |
| while ((current + 1) < argCount) | |
| { | |
| string arg = args[current]; | |
| if (arg == "--count") | |
| { | |
| arg = args[++current]; | |
| int i = Int32.Parse(arg); | |
| if (i >= 0) | |
| { | |
| this.messageCount = i; | |
| } | |
| } | |
| else if (arg == "--broker") | |
| { | |
| this.broker = args[++current]; | |
| } | |
| else if (arg == "--port") | |
| { | |
| arg = args[++current]; | |
| int i = int.Parse(arg); | |
| if (i > 0) | |
| { | |
| this.port = i; | |
| } | |
| } | |
| else if (arg == "--timeout") | |
| { | |
| arg = args[++current]; | |
| int i = int.Parse(arg); | |
| if (i > 0) | |
| { | |
| this.timeout = TimeSpan.FromSeconds(i); | |
| } | |
| } | |
| else if (arg == "--content") | |
| { | |
| this.content = args[++current]; | |
| } | |
| else | |
| { | |
| throw new ArgumentException(String.Format("unknown argument \"{0}\"", arg)); | |
| } | |
| current++; | |
| } | |
| if (current == argCount) | |
| { | |
| throw new ArgumentException("missing argument: address"); | |
| } | |
| address = new EndpointAddress("amqp:" + args[current]); | |
| if (timeout < TimeSpan.FromMilliseconds(100)) | |
| { | |
| // WCF timeout of 0 really means no time for even a single message transfer | |
| timeout = TimeSpan.FromMilliseconds(100); | |
| } | |
| } | |
| public EndpointAddress Address | |
| { | |
| get { return this.address; } | |
| } | |
| public string Broker | |
| { | |
| get { return this.broker; } | |
| } | |
| public string Content | |
| { | |
| get | |
| { | |
| if (content == null) | |
| { | |
| return String.Empty; | |
| } | |
| return content; | |
| } | |
| } | |
| public int Count | |
| { | |
| get { return this.messageCount; } | |
| } | |
| public int Port | |
| { | |
| get { return this.port; } | |
| } | |
| public TimeSpan Timeout | |
| { | |
| get { return this.timeout; } | |
| } | |
| } | |
| } |