/// <summary> /// Constructor /// </summary> public ParseState(GetConfigMsg query) { this.Query = query; this.FileStack = new Stack <string>(); this.SwitchStack = new Stack <SwitchState>(); this.IncludeLines = true; }
private Config Query(MsgRouter router, string machineName, string exeFile, Version exeVersion, string usage) { GetConfigMsg query; GetConfigAck ack; query = new GetConfigMsg(machineName, exeFile, exeVersion, usage); ack = (GetConfigAck)router.Query(ConfigServiceProvider.GetConfigEP, query); return(new Config(null, new StringReader(ack.ConfigText))); }
public void Msg_Clone_GetConfigMsg() { GetConfigMsg msgIn, msgOut; msgOut = new GetConfigMsg("server", "foo.exe", new Version("5.1.2.3"), "usage"); msgIn = (GetConfigMsg)msgOut.Clone(); Assert.AreEqual(msgOut.MachineName, msgIn.MachineName); Assert.AreEqual(msgOut.ExeFile, msgIn.ExeFile); Assert.AreEqual(msgOut.ExeVersion, msgIn.ExeVersion); Assert.AreEqual(msgOut.Usage, msgIn.Usage); TestBaseCloning(msgOut); }
public void Msg_Serialize_GetConfigMsg() { GetConfigMsg msgIn, msgOut; EnhancedStream es = new EnhancedMemoryStream(); msgOut = new GetConfigMsg("server", "foo.exe", new Version("5.1.2.3"), "usage"); Msg.Save(es, msgOut); es.Seek(0, SeekOrigin.Begin); msgIn = (GetConfigMsg)Msg.Load(es); Assert.AreEqual("server", msgIn.MachineName); Assert.AreEqual("foo.exe", msgIn.ExeFile); Assert.AreEqual(new Version("5.1.2.3"), msgIn.ExeVersion); Assert.AreEqual("usage", msgIn.Usage); }
public void OnMsg(GetConfigMsg query) { using (TimedLock.Lock(router.SyncRoot)) { if (router == null) { return; // The handler has been shut down or stopped } try { var sb = new StringBuilder(); bool load = false; string fname; // Append the exeFile based config (if any) if (query.ExeFile != null && query.ExeFile.Trim() != string.Empty) { fname = "app-" + query.ExeFile + ".ini"; if (fname.IndexOfAny(badChars) != -1) { throw new ArgumentException("[ExeFile] has invalid characters."); } if (File.Exists(settingsFolder + fname)) { load = true; AppendFile(sb, new ParseState(query), fname); } } // Append the machineName based config (if any) if (query.MachineName != null && query.MachineName.Trim() != string.Empty) { fname = "svr-" + query.MachineName + ".ini"; if (fname.IndexOfAny(badChars) != -1) { throw new ArgumentException("[MachineName] has invalid characters."); } if (File.Exists(settingsFolder + fname)) { load = true; AppendFile(sb, new ParseState(query), fname); } } if (load) { router.ReplyTo(query, new GetConfigAck(sb.ToString())); } else { router.ReplyTo(query, new GetConfigAck(new Exception("No configuration settings."))); } } catch (Exception e) { router.ReplyTo(query, new GetConfigAck(e)); } } }