diff defical-sharp/defical-cli/main.cs @ 0:ebed2bd0d300

Initial import from svn. History be damned.
author Edho P. Arief <me@myconan.net>
date Fri, 02 Apr 2010 23:11:57 +0700
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defical-sharp/defical-cli/main.cs	Fri Apr 02 23:11:57 2010 +0700
@@ -0,0 +1,150 @@
+using System;
+using System.Threading;
+using libbacktrack;
+using System.IO;
+
+namespace defical_cli
+{
+    partial class Program
+    {
+        private partial class main
+        {
+            public main() { throw new NotImplementedException(); }
+            public main(params string[] args)
+            {
+                this.numThreads = Environment.ProcessorCount + 1;
+                {
+                    if (args.Length != 0 && !getArguments(args))
+                    {
+                        Console.WriteLine("Failed");
+                        return;
+                    }
+                    printWelcome();
+                    getInput();
+                    printPreSummary();
+                    Console.WriteLine("Started: {0}", DateTime.Now.ToString());
+                    Console.WriteLine(separator);
+                    go();
+                    Console.WriteLine(separator);
+                    Console.WriteLine("Finished: {0}", DateTime.Now.ToString());
+                    //Console.ReadLine();
+                }
+            }
+            private void printPreSummary()
+            {
+                Console.WriteLine(separator);
+                Console.WriteLine("Graph type: {0}", this.graphType);
+                Console.WriteLine("Number of vertices: {0}", this.numVer);
+                Console.WriteLine("Number of deficiencies: {0}", this.numDef);
+                Console.WriteLine("Algorithm: {0}", this.algorithm);
+                if (this.algorithm == "backtrack")
+                {
+                    Console.WriteLine("Number of threads: {0}", this.numThreads);
+                }
+                Console.WriteLine(separator);
+            }
+            private void printWelcome()
+            {
+                Console.WriteLine("Defical_CLI v{0}", this.version);
+                Console.WriteLine("Super magic deficiency calculator");
+                Console.WriteLine("By Edho <me@myconan.net>");
+                Console.WriteLine(separator);
+            }
+            private bool parseNum(string input, int min, int def, out int ret)
+            {
+                if (input == "")
+                {
+                    ret = def;
+                    return true;
+                }
+                try { Convert.ToInt32(input); }
+                catch
+                {
+                    ret = -1;
+                    return false;
+                }
+                if (Convert.ToInt32(input) < min)
+                {
+                    ret = -1;
+                    return false;
+                }
+                else
+                {
+                    ret = Convert.ToInt32(input);
+                    return true;
+                }
+            }
+            private bool parseGraphType(char i)
+            {
+                switch (i)
+                {
+                    case '1':
+                    case '\r':
+                        {
+                            this.graphType = "wheel";
+                            return true;
+                        }
+                    case '2':
+                        {
+                            this.graphType = "fan";
+                            return true;
+                        }
+                    case '3':
+                        {
+                            this.graphType = "doublefan";
+                            return true;
+                        }
+                    default:
+                        { return false; }
+
+                }
+            }
+            private bool parseAlgo(char i)
+            {
+                switch (i)
+                {
+                    case '1':
+                    case '\r':
+                        {
+                            this.algorithm = "backtrack";
+                            return true;
+                        }
+                    default:
+                        { return false; }
+                }
+            }
+            private void WriteToFile(string filePath, string line)
+            {
+                if (filePath == null || filePath.Length == 0)
+                    return;
+                if (line == null || line.Length == 0)
+                    return;
+
+                StreamWriter fileWriter = null;
+                try
+                {
+                    if (File.Exists(filePath))
+                        fileWriter = File.AppendText(filePath);
+                    else
+                        fileWriter = File.CreateText(filePath);
+                    fileWriter.Write(line);
+                }
+                finally
+                {
+                    if (fileWriter != null)
+                        fileWriter.Close();
+                }
+            }
+            private string getHomeDir()
+            {
+                if (Environment.OSVersion.Platform == PlatformID.Unix ||
+                   Environment.OSVersion.Platform == PlatformID.MacOSX)
+                { return Environment.GetEnvironmentVariable("HOME") + "/"; }
+                else
+                {
+                    return Environment.ExpandEnvironmentVariables("%HOMEDRIVE%%HOMEPATH%") + "\\";
+                }
+            }
+        }
+    }
+}
\ No newline at end of file