/// <summary> /// Entry point /// </summary> /// <param name="args">Command line arguments</param> static void Main(string[] args) { string hostName; int tcpPort; int maxPackageLength; ParseArgs(args, out hostName, out tcpPort, out maxPackageLength); var endPoint = new GlowEndPoint(hostName, tcpPort, maxPackageLength); Console.WriteLine("Ember+ Walker v{0} (GlowDTD v{1} - EmBER v{2}) connecting...", typeof(Program).Assembly.GetName().Version, GlowReader.UshortVersionToString(EmberLib.Glow.GlowDtd.Version), GlowReader.UshortVersionToString(EmberLib.EmberEncoding.Version)); if(endPoint.Connect()) { Console.WriteLine("Connected. Enter '?' for help."); var program = new Program(endPoint); program.Run(); } endPoint.Close(); }
/// <summary> /// Constructs the single instance of the Program class. /// </summary> /// <param name="endPoint">Connected GlowEndPoint.</param> Program(GlowEndPoint endPoint) { _endPoint = endPoint; _rootElement = Element.CreateRoot(); _cursor = _rootElement; _endPoint.GlowRootReady += (_, e) => { if(e.Root.Accept(_rootElement, null)) { Console.WriteLine(); foreach(var elem in _cursor.Children) Console.WriteLine(PrintElement(elem)); WritePrompt(); } }; _endPoint.Notification += (_, e) => { Debug.Print(e.Message); }; }