private void SendServerPipeMessage(string text, PipeCommands type) { Log.Debug("SendServerPipeMessage text="+text+" type="+type.ToString()); if (PipeServerBusy) { ServerMessage = text; if ((type == PipeCommands.Ready) || (type == PipeCommands.Error)) { ServerMessage = type.ToString() + ServerMessage; Log.Debug("ServerMessage=" + ServerMessage); } Logdebug("Preparing new epg message=" + text); Log.Debug("ServerMessage=" + ServerMessage); NewServerMessage = true; } }
private static void Service(string ServiceName) { StrRld = CreateDictionary(); MskRld = CreateDictionary(); Missed = new List <string>(); NamedPipeServerStream Server = new NamedPipeServerStream(ServiceName, PipeDirection.InOut, 2, PipeTransmissionMode.Byte); Server.WaitForConnection(); BinaryReader Reader = new BinaryReader(Server); BinaryWriter Writer = new BinaryWriter(Server); bool OK = true; while (Server.IsConnected) { PipeCommands Command = (PipeCommands)Reader.ReadByte(); Log("Command Recived: {0}", true, Command.ToString()); switch (Command) { case PipeCommands.AddReload: OK = true; string Original = Reader.ReadString(); string Reloader = Reader.ReadString(); if (!StrRld.ContainsKey(Original) || AllowDuplicates) { StrRld.Add(Original, Reloader); } Log("Command Finished, In: {0}, Out: {1}", true, 2, 0); break; case PipeCommands.FindReload: OK = true; bool Enforce = Reader.ReadByte() == (byte)PipeCommands.True; string Key = Reader.ReadString(); if (StrRld.ContainsKey(Key)) { Writer.Write((byte)PipeCommands.True); } else if (Enforce) { Writer.Write((byte)PipeCommands.False); } else if ((from x in Databases where x.ContainsKey(Key) select x).Count() > 0) { Writer.Write((byte)PipeCommands.True); } else { Writer.Write((byte)PipeCommands.False); } Writer.Flush(); Log("Command Finished, In: {0}, Out: {1}", true, 2, 1); break; case PipeCommands.GetReload: OK = true; string RLD = Reader.ReadString(); try { string Rst = null; if (StrRld.ContainsKey(RLD)) { Rst = StrRld[RLD]; } else { for (DBID = 0; DBID < Databases.Count; DBID++) { if (StrRld.ContainsKey(RLD)) { Rst = StrRld[RLD]; break; } } } Writer.Write(Rst); } catch (Exception ex) { Writer.Write(RLD); Log("Exception Handled\n=================\n{0}\n{1}", true, ex.Message, ex.StackTrace); } Writer.Flush(); Log("Command Finished, In: {0}, Out: {1}", true, 1, 1); break; case PipeCommands.AddMissed: OK = true; try { Missed.Add(Reader.ReadString()); } catch { } Log("Command Finished, In: {0}, Out: {1}", true, 1, 1); break; case PipeCommands.FindMissed: OK = true; if (Missed.Contains(Reader.ReadString())) { Writer.Write((byte)PipeCommands.True); } else { Writer.Write((byte)PipeCommands.False); } Writer.Flush(); Log("Command Finished, In: {0}, Out: {1}", true, 1, 1); break; case PipeCommands.AddPtr: OK = true; try { Ptrs.Add(Reader.ReadInt64()); } catch { } Log("Command Finished, In: {0}, Out: {1}", true, 1, 0); break; case PipeCommands.GetPtrs: OK = true; uint Replys = 1; Writer.Write(Ptrs.Count); foreach (long Ptr in Ptrs) { Writer.Write(Ptr); Replys++; } Writer.Flush(); Log("Command Finished, In: {0}, Out: {1}", true, 1, Replys); break; case PipeCommands.EndPipe: OK = true; Log("Exit Command Recived...", true); Environment.Exit(0); break; case PipeCommands.AddMask: OK = true; string Input = Reader.ReadString(); string Reload = Reader.ReadString(); if (!MskRld.ContainsKey(Input) || AllowDuplicates) { MskRld.Add(Input, Reload); } Log("Command Finished, In {0}, Out: {1}", true, 2, 0); break; case PipeCommands.ChkMask: string String = Reader.ReadString(); string[] Result = (from x in MskRld.Keys where MaskMatch(x, String) select x).ToArray(); Writer.Write((byte)((Result.Length > 0) ? PipeCommands.True : PipeCommands.False)); Writer.Flush(); Log("Command Finished, In: {0}, Out: {1}", true, 1, 1); break; case PipeCommands.RldMask: string Ori = Reader.ReadString(); string Mask = (from x in MskRld.Keys where MaskMatch(x, Ori) select x).FirstOrDefault(); string Rld = MskRld[Mask]; Writer.Write(MaskReplace(Mask, Ori, Rld)); Writer.Flush(); Log("Command Finished, In: {0}, Out: {1}", true, 2, 1); break; case PipeCommands.AdvDB: if (DBID >= Databases.Count) { return; } LastDBID++; DBID = LastDBID; Log("Command Finished, In: {0}, Out: {1}", true, 1, 0); break; case PipeCommands.GetDBID: Writer.Write(DBID); Writer.Flush(); Log("Command Finished, In: {0}, Out: {1}", true, 1, 1); break; case PipeCommands.SetDBID: DBID = Reader.ReadInt32(); Log("Command Finished, In: {0}, Out: {1}", true, 2, 0); break; case PipeCommands.GetDBIndex: Writer.Write(((DuplicableDictionary <string, string>)StrRld).LastKeyIndex); Writer.Flush(); Log("Command Finished, In: {0}, Out: {1}", true, 1, 1); break; default: if (!OK) { MessageBox.Show("Recived Invalid Command to the pipe service...", "SRL Engine", MessageBoxButtons.OK, MessageBoxIcon.Error); } OK = false; break; } } Server.Close(); Reader.Close(); Writer.Close(); }
public void labelmessage(string text, PipeCommands type) { if (newlabelmessage != null) { LogDebug("Creating new event message: " + text + " for type=" + type.ToString(), (int)LogSetting.DEBUG); newlabelmessage(text, type); } }
public void labelmessage(string text, PipeCommands type) { if (newlabelmessage != null) { Log.Debug("Creating new event message: " + text + " for type=" + type.ToString()); newlabelmessage(text, type); } #if (MP11 || MP12 || MP16 || MP2) if (myTvWishes != null) { myTvWishes.StatusLabel(text); } #endif }
private void labelupdate(string message, PipeCommands type) { int number = 50; labelstatus2.Text = ""; labelmainstatus2.Text = ""; labelstatus2.Update(); labelmainstatus2.Update(); message = message.Replace(@"\n"," "); //no line returns here if (message.Length <= number-1) { labelstatus.Text = message; labelstatus.Update(); labelmainstatus.Text = message; labelmainstatus.Update(); } else { for (int i = number-1; i >= 1; i--) { if (message[i] == ' ') { number = i; break; } } //LogDebug("number=" + number.ToString(), (int)LogSetting.DEBUG); labelstatus.Text = message.Substring(0, number); labelstatus2.Text = message.Substring(number + 1, message.Length - number-1); labelstatus.Update(); labelstatus2.Update(); labelmainstatus.Text = message.Substring(0, number); labelmainstatus2.Text = message.Substring(number + 1, message.Length - number - 1); labelmainstatus.Update(); labelmainstatus2.Update(); } }