private readonly TConfiguration Configuration = null; // or new TConfiguration() if needed internal void Parse(List <string> args) { for (var i = 0; i < args.Count; ++i) { if (args[i] == "-u") { url = args[++i]; transport = TransportChoice.Http; } else if (args[i] == "-n") { numIterations = Convert.ToInt32(args[++i]); } else if (args[i].StartsWith("--pipe=")) { pipe = args[i].Substring(args[i].IndexOf("=") + 1); transport = TransportChoice.NamedPipe; } else if (args[i].StartsWith("--host=")) { // check there for ipaddress host = args[i].Substring(args[i].IndexOf("=") + 1); if (transport != TransportChoice.TlsSocket) { transport = TransportChoice.Socket; } } else if (args[i].StartsWith("--port=")) { port = int.Parse(args[i].Substring(args[i].IndexOf("=") + 1)); if (transport != TransportChoice.TlsSocket) { transport = TransportChoice.Socket; } } else if (args[i] == "-b" || args[i] == "--buffered" || args[i] == "--transport=buffered") { layered = LayeredChoice.Buffered; } else if (args[i] == "-f" || args[i] == "--framed" || args[i] == "--transport=framed") { layered = LayeredChoice.Framed; } else if (args[i] == "-t") { numThreads = Convert.ToInt32(args[++i]); } else if (args[i] == "--binary" || args[i] == "--protocol=binary") { protocol = ProtocolChoice.Binary; } else if (args[i] == "--compact" || args[i] == "--protocol=compact") { protocol = ProtocolChoice.Compact; } else if (args[i] == "--json" || args[i] == "--protocol=json") { protocol = ProtocolChoice.Json; } else if (args[i] == "--ssl") { transport = TransportChoice.TlsSocket; } else if (args[i] == "--help") { PrintOptionsHelp(); return; } else { Console.WriteLine("Invalid argument: {0}", args[i]); PrintOptionsHelp(); return; } } switch (transport) { case TransportChoice.Socket: Console.WriteLine("Using socket transport"); break; case TransportChoice.TlsSocket: Console.WriteLine("Using encrypted transport"); break; case TransportChoice.Http: Console.WriteLine("Using HTTP transport"); break; case TransportChoice.NamedPipe: Console.WriteLine("Using named pipes transport"); break; default: // unhandled case Debug.Assert(false); break; } switch (layered) { case LayeredChoice.Framed: Console.WriteLine("Using framed transport"); break; case LayeredChoice.Buffered: Console.WriteLine("Using buffered transport"); break; default: // unhandled case? Debug.Assert(layered == LayeredChoice.None); break; } switch (protocol) { case ProtocolChoice.Binary: Console.WriteLine("Using binary protocol"); break; case ProtocolChoice.Compact: Console.WriteLine("Using compact protocol"); break; case ProtocolChoice.Json: Console.WriteLine("Using JSON protocol"); break; default: // unhandled case? Debug.Assert(false); break; } }
internal void Parse(List <string> args) { for (var i = 0; i < args.Count; i++) { if (args[i].StartsWith("--pipe=")) { pipe = args[i].Substring(args[i].IndexOf("=") + 1); transport = TransportChoice.NamedPipe; } else if (args[i].StartsWith("--port=")) { port = int.Parse(args[i].Substring(args[i].IndexOf("=") + 1)); if (transport != TransportChoice.TlsSocket) { transport = TransportChoice.Socket; } } else if (args[i] == "-b" || args[i] == "--buffered" || args[i] == "--transport=buffered") { buffering = BufferChoice.Buffered; } else if (args[i] == "-f" || args[i] == "--framed" || args[i] == "--transport=framed") { buffering = BufferChoice.Framed; } else if (args[i] == "--binary" || args[i] == "--protocol=binary") { protocol = ProtocolChoice.Binary; } else if (args[i] == "--compact" || args[i] == "--protocol=compact") { protocol = ProtocolChoice.Compact; } else if (args[i] == "--json" || args[i] == "--protocol=json") { protocol = ProtocolChoice.Json; } else if (args[i] == "--threaded" || args[i] == "--server-type=threaded") { throw new NotImplementedException(args[i]); } else if (args[i] == "--threadpool" || args[i] == "--server-type=threadpool") { throw new NotImplementedException(args[i]); } else if (args[i] == "--prototype" || args[i] == "--processor=prototype") { throw new NotImplementedException(args[i]); } else if (args[i] == "--ssl") { transport = TransportChoice.TlsSocket; } else if (args[i] == "--help") { PrintOptionsHelp(); return; } else { Console.WriteLine("Invalid argument: {0}", args[i]); PrintOptionsHelp(); return; } } }