public IPCProcess(ICommunicationInitialisation initArgs, ICommunicationServer server, ICommunicationClient client) { this.initArgs = initArgs; this.client = client; this.server = server; string[] args = Environment.GetCommandLineArgs(); string arg; if (args.Length == 1) { arg = args[0]; } else { arg = args[1]; } if (arg.StartsWith("$IPCParent{")) { IsServer = false; this.ParentProcessId = int.Parse(arg.Substring(11, arg.Length - 12)); } else { IsServer = true; } }
public virtual void Start(ICommunicationInitialisation initArgs) { if (listening) { return; } connections = new List<ICommunicationConnection>(); OnStart(initArgs); while (!_stop) { ICommunicationConnection conn = WaitForConnection(); connections.Add(conn); conn.Disconnected += conn_Disconnected; if (ShouldFireConnectionReceived()) { OnConnectionReceived(conn); } if (!MultipleStreams) break; } Stopping = false; }
public virtual void Start(ICommunicationInitialisation initArgs) { if (listening) { return; } connections = new List <ICommunicationConnection>(); OnStart(initArgs); while (!_stop) { ICommunicationConnection conn = WaitForConnection(); connections.Add(conn); conn.Disconnected += conn_Disconnected; if (ShouldFireConnectionReceived()) { OnConnectionReceived(conn); } if (!MultipleStreams) { break; } } Stopping = false; }
protected virtual void OnStart(ICommunicationInitialisation initArgs) { }
protected override void OnStart(ICommunicationInitialisation initArgs) { base.OnStart(initArgs); server = new NamedPipeServerStream(((NamedPipeInitialisation)initArgs).PipeId); }
public ICommunicationConnection Connect(ICommunicationInitialisation initArgs) { System.IO.Pipes.NamedPipeClientStream client = new System.IO.Pipes.NamedPipeClientStream(((NamedPipeInitialisation)initArgs).PipeId); client.Connect(); return new NamedPipeConnection(client); }
public ICommunicationConnection Connect(ICommunicationInitialisation initArgs) { System.IO.Pipes.NamedPipeClientStream client = new System.IO.Pipes.NamedPipeClientStream(((NamedPipeInitialisation)initArgs).PipeId); client.Connect(); return(new NamedPipeConnection(client)); }