public static void Cmdline(string[] args)
{
int numargs = args.GetLength(0);
string arg;
if (numargs > 0)
{
foreach (string cmd in args)
{
//select tpc benchmark type defaults to c
//not implemented yet
if (cmd.ToLower().Contains("\\b:"))
{
arg = cmd.Remove(0, 3);
arg = arg.Trim();
if (arg.Length == 0)
{
Globals.Err = 1;
Console.WriteLine(cmd + " no valid argument after identifier");
Showhelp();
break;
}
Globals.BenchType = arg;
}
//number of warehouses
else if (cmd.ToLower().Contains("\\wh:"))
{
arg = cmd.Remove(0, 4);
arg = arg.Trim();
if (arg.Length == 0)
{
Globals.Err = 1;
Console.WriteLine(cmd + " no valid argument after identifier");
Showhelp();
break;
}
Globals.WH = Convert.ToInt32(arg);
}
//number of clients
else if (cmd.ToLower().Contains("\\c:"))
{
arg = cmd.Remove(0, 3);
arg = arg.Trim();
if (arg.Length == 0)
{
Globals.Err = 1;
Console.WriteLine(cmd + " no valid argument after identifier");
Showhelp();
break;
}
Globals.NumClients = Convert.ToInt32(arg);
}
//Client sleep cycle maximum
else if (cmd.ToLower().Contains("\\cs:"))
{
arg = cmd.Remove(0, 4);
arg = arg.Trim();
if (arg.Length == 0)
{
Globals.Err = 1;
Console.WriteLine(cmd + " no valid argument after identifier");
Showhelp();
break;
}
Globals.ClientSleepSec = Convert.ToInt32(arg)*1000;
}
//percent new orders
else if (cmd.ToLower().Contains("\\pno:"))
{
arg = cmd.Remove(0, 5);
arg = arg.Trim();
if (arg.Length == 0)
{
Globals.Err = 1;
Console.WriteLine(cmd + " no valid argument after identifier");
Showhelp();
break;
}
Globals.PNO = Convert.ToInt32(arg);
}
//percent new order status
else if (cmd.ToLower().Contains("\\pos:"))
{
arg = cmd.Remove(0, 5);
arg = arg.Trim();
if (arg.Length == 0)
{
Globals.Err = 1;
Console.WriteLine(cmd + " no valid argument after identifier");
Showhelp();
break;
}
Globals.POS = Convert.ToInt32(arg);
}
//percent pament
else if (cmd.ToLower().Contains("\\pp:"))
{
arg = cmd.Remove(0, 4);
arg = arg.Trim();
if (arg.Length == 0)
{
Globals.Err = 1;
Console.WriteLine(cmd + " no valid argument after identifier");
Showhelp();
break;
}
Globals.PP = Convert.ToInt32(arg);
}
//percent dilivery
else if (cmd.ToLower().Contains("\\pd:"))
{
arg = cmd.Remove(0, 4);
arg = arg.Trim();
if (arg.Length == 0)
{
Globals.Err = 1;
Console.WriteLine(cmd + " no valid argument after identifier");
Showhelp();
break;
}
Globals.PD = Convert.ToInt32(arg);
}
//percent stock lookup
else if (cmd.ToLower().Contains("\\psl:"))
{
arg = cmd.Remove(0, 5);
arg = arg.Trim();
if (arg.Length == 0)
{
Globals.Err = 1;
Console.WriteLine(cmd + " no valid argument after identifier");
Showhelp();
break;
}
Globals.PSL = Convert.ToInt32(arg);
}
//server name
else if (cmd.ToLower().Contains("\\s:"))
{
arg = cmd.Remove(0, 3);
arg = arg.Trim();
if (arg.Length == 0)
{
Globals.Err = 1;
Console.WriteLine(cmd + " no valid argument after identifier");
Showhelp();
break;
}
Globals.ServerName = arg;
}
//database name
else if (cmd.ToLower().Contains("\\d:"))
{
arg = cmd.Remove(0, 3);
arg = arg.Trim();
if (arg.Length == 0)
{
Globals.Err = 1;
Console.WriteLine(cmd + " no valid argument after identifier");
Showhelp();
break;
}
Globals.DatabaseName = arg;
//Globals.DatabaseName = Globals.DatabaseName.Trim;
}
//user name
else if (cmd.ToLower().Contains("\\u:"))
{
arg = cmd.Remove(0, 3);
arg = arg.Trim();
if (arg.Length == 0)
{
Globals.Err = 1;
Console.WriteLine(cmd + " no valid argument after identifier");
Showhelp();
break;
}
Globals.UserName = arg;
//Globals.UserName = Globals.UserName.Trim;
}
//fixed number of loops
else if (cmd.ToLower().Contains("\\nl:"))
{
arg = cmd.Remove(0, 4);
arg = arg.Trim();
if (arg.Length == 0)
{
Globals.Err = 1;
Console.WriteLine(cmd + " no valid argument after identifier");
Showhelp();
break;
}
Globals.NumLoops = Convert.ToInt32(arg);
}
//password
else if (cmd.ToLower().Contains("\\p:"))
{
arg = cmd.Remove(0, 3);
arg = arg.Trim();
if (arg.Length == 0)
{
Globals.Err = 1;
Console.WriteLine(cmd + " no valid argument after identifier");
Showhelp();
break;
}
Globals.Password = arg;
//Globals.Password = Globals.Password.Trim;
}
//logging level debug,info,query,error,warn
else if (cmd.ToLower().Contains("\\l:"))
{
arg = cmd.Remove(0, 3);
arg = arg.Trim();
if (arg.Length == 0)
{
Globals.Err = 1;
Console.WriteLine(cmd + " no valid argument after identifier");
Showhelp();
break;
}
Globals.StrLoggingLevel = arg;
//Globals.UserName = Globals.UserName.Trim;
}
//trusted
else if (cmd.ToLower().Contains("\\t"))
{
Globals.Trusted = "true";
}
//use stored procedures
else if (cmd.ToLower().Contains("\\sp"))
{
Globals.StoredProc = 1;
}
//full out writes to a table
else if (cmd.ToLower().Contains("\\rw"))
{
Globals.RawWrite = 1;
}
//write to Heartbeat table
else if (cmd.ToLower().Contains("\\hb"))
{
Globals.Heartbeat = 1;
}
//Stagger Client load
else if (cmd.ToLower().Contains("\\stl:"))
{
arg = cmd.Remove(0, 5);
arg = arg.Trim();
if (arg.Length == 0)
{
Globals.Err = 1;
Console.WriteLine(cmd + " no valid argument after identifier");
Showhelp();
break;
}
Globals.StaggeredLoad = Convert.ToInt32(arg)*1000;
}
//show help
else if (cmd.ToLower().Contains("\\?"))
{
Showhelp();
Globals.Err = 2;
}
//log to console
//for debugging only
else if (cmd.ToLower().Contains("\\lc"))
{
Globals.LogToConsole = 1;
}
//run time
else if (cmd.ToLower().Contains("\\m:"))
{
arg = cmd.Remove(0, 3);
arg = arg.Trim();
if (arg.Length == 0)
{
Globals.Err = 1;
Console.WriteLine(cmd + " no valid argument after identifier");
Showhelp();
break;
}
Globals.MaxRunTimeMin = Convert.ToInt32(arg);
//Globals.MaxRunTimeMin = Convert.ToInt32(cmd);
}
else
{
Console.WriteLine("invalid arguements specified");
Console.WriteLine(cmd + " is incorrect");
Showhelp();
Globals.Err = 1;
break;
}
}
}
else
{
Console.WriteLine("No arguements specified.");
Showhelp();
Globals.Err = 1;
}
if (!((Globals.PD + Globals.PNO + Globals.POS + Globals.PP + Globals.PSL) == 100))
{
Console.WriteLine(Globals.PD + Globals.PNO + Globals.POS + Globals.PP + Globals.PSL);
Console.WriteLine(
"You must specifiy all work load variables and they must total 100. Please correct and run again");
Globals.Err = 1;
}
}