private string TreeNodeText(TalkerSession <string> talkerSession) { StringBuilder sb = new StringBuilder(80); sb.Append(talkerSession.SessionType); sb.Append(" " + talkerSession.ServerAddress()); sb.Append(" " + talkerSession.ClientAddress()); return(sb.ToString()); }
private void Talker_FormClosed(object sender, FormClosedEventArgs e) { helpForm.Close(); this.Hide(); // could take some time to close all connections - this makes it look more snappy foreach (TreeNode treeNode in tvConnections.Nodes) { if (treeNode.Parent != null) { continue; // only interested in top-level nodes } TalkerSession <string> talkerSession = (TalkerSession <string>)treeNode.Tag; talkerSession.Close(); } }
private void MessageReceiver(TalkerSession <string> talkerSession, string message) { if (this.tbReceived.InvokeRequired) // calling thread same as form thread? { TalkerSession <string> .MessageReceiverDelegate d = new TalkerSession <string> .MessageReceiverDelegate(MessageReceiver); this.Invoke(d, new object[] { talkerSession, message }); // synchronous call - for asynch use BeginInvoke instead } else { this.Activate(); this.tbReceived.AppendText(DateTime.Now.ToString("HH:mm:ss ") + message + Environment.NewLine); } }
private void btnNewServer_Click(object sender, EventArgs e) { ClearStatus(); TalkerSession <string> talkerSession; try { talkerSession = new TalkerSession <string>(TalkerSession <string> .SessionTypeEnum.Server, GetServerAddressString()); talkerSession.SubscribeMessageReceived(new TalkerSession <string> .MessageReceiverDelegate(MessageReceivedDistributor)); } catch (Exception e1) { toolStripStatusLabel1.Text = e1.Message; return; } TreeNode treeNode = tvConnections.Nodes.Add("Server " + GetServerAddressString()); treeNode.Tag = talkerSession; talkerSession.TopLevelTreeNode = treeNode; }
private void menuItem_Click(object sender, System.EventArgs e) { ClearStatus(); MenuItem menuItem = (MenuItem)sender; TreeNode treeNode = tvConnections.SelectedNode; Debug.Assert(treeNode.Tag.GetType() == typeof(TalkerSession <string>)); TalkerSession <string> talkerSession = (TalkerSession <string>)treeNode.Tag; Debug.Assert(talkerSession != null); if (menuItem.Text == TEST_MESSAGE) { talkerSession.SendMessageToAllPeers(TEST_MESSAGE); return; } if (menuItem.Text == REFRESH) { treeNode.Text = TreeNodeText(talkerSession); return; } toolStripStatusLabel1.Text = "Context Item " + menuItem.Text + " not implemented"; }
private void MessageReceivedDistributor(TalkerSession <string> talkerSession, string message) { MessageReceiver(talkerSession, message); }