public void BroadcastMessage(EncodedMessage x, string[] Friends) { // yay, lets try to see if any of our friends is online foreach (var Friend in Friends) { if (string.IsNullOrEmpty(Friend)) { // shooting blanks are we? } else if (Friend == Nickname) { } else { ahmanize( new ChatRequest.Requests.sendmessage( Friend, Nickname, "0", x.ToString(), "100" ) ); } } }
private void Poller_Tick(object sender, EventArgs e) { this.PollerCounter++; this.Text = "" + PollerCounter; Poller.Enabled = false; if (NicknameRegistered) { ChatCheck(Nickname); } else { ChatCheck(Pseudoname); } // we should check on our friends var w = new StringBuilder(); foreach (FriendStatus k in this.FriendStatusList) { k.PollerCounter++; if ((k.PollerCounter % 6) == 0) { var x = new EncodedMessage { Message = Message_Ping }; ahmanize( new ChatRequest.Requests.sendmessage( k.Name, Nickname, "0", x.ToString(), "100" ) ); } w.AppendLine(k.ToString()); } this.textBox6.Text = w.ToString(); }
private void Catchup_Tick(object sender, EventArgs e) { Catchup.Enabled = false; var r = default(FriendStatus); foreach (FriendStatus item in this.FriendStatusList) { if (item.IsOnline) { r = item; break; } } if (r == null) { AppendTextLine("*** Starting fresh..."); } else { AppendTextLine("*** Catching up with " + r.Name + "..."); var x = new EncodedMessage { Message = Message_Catchup }; ahmanize( new ChatRequest.Requests.sendmessage( r.Name, Nickname, "0", x.ToString(), "100" ) ); } }
public void PollerGotDataLine(string path, string myname) { var sendname = new sendname(); var findname = new findname(); var asknames = new asknames(); var sendmessage = new sendmessage(); findname.BeforeInvoke = delegate { // let the discovery service know // that somebody wants that name // if we do we should let the poor sap know about it! if (findname.name == this.Nickname) { if (findname.myname == this.Pseudoname) { // we swallow our own question! } else { this.AppendTextLine(findname.name + " is registered to me!"); ahmanize( new ChatRequest.Requests.sendname( // to whom? findname.myname, // from whom? Nickname, // name we know about Nickname, "0" ) ); } return; } var r = default(FriendStatus); foreach (FriendStatus item in this.FriendStatusList) { if (item.Name == sendmessage.myname) { r = item; } } if (r != null) { if (r.IsOnline) { this.AppendTextLine(findname.name + " is registered to a friend!"); ahmanize( new ChatRequest.Requests.sendname( // to whom? findname.myname, // from whom? r.Name, // name we know about r.Name, "0" ) ); } } }; sendname.BeforeInvoke = delegate { if (sendname.name == Nickname) { this.AppendTextLine("*** Nickname " + Nickname + " already taken! Better luck next time!"); this.RegistrationTimeout.Enabled = false; this.Poller.Enabled = false; return; } }; sendmessage.BeforeInvoke = delegate { EncodedMessage m = sendmessage.message; m.Sender = sendmessage.myname; if (m.Message == Message_SeeYouLater) { this.AppendTextLine("*** " + m.Sender + " has left the chat!"); var r = default(FriendStatus); foreach (FriendStatus item in this.FriendStatusList) { if (item.Name == sendmessage.myname) { r = item; } } if (r != null) { this.FriendStatusList.Remove(r); } return; } if (m.Message == Message_Ping) { var x = new EncodedMessage { Message = Message_Pong }; ahmanize( new ChatRequest.Requests.sendmessage( sendmessage.myname, Nickname, "0", x.ToString(), "100" ) ); var r = default(FriendStatus); foreach (FriendStatus item in this.FriendStatusList) { if (item.Name == sendmessage.myname) { r = item; } } if (r == null) { this.FriendStatusList.Add(new FriendStatus { Name = sendmessage.myname }); } return; } if (m.Message == Message_Pong) { foreach (FriendStatus item in this.FriendStatusList) { if (item.Name == sendmessage.myname) { item.LastSeen = DateTime.Now.Ticks; } } return; } if (m.Message == Message_Catchup) { this.AppendTextLine("*** " + m.Sender + " wants to catch up..."); foreach (EncodedMessage mm in this.Messages) { var xx = new EncodedMessage { Time = mm.Time, Sender = Nickname, Message = mm.Sender + " said " + mm.Message }; BroadcastMessage(xx, new[] { m.Sender }); } return; } AppendMessage(m); }; path.Chop("/chat").GetArguments().AsParametersTo( sendname.Invoke, findname.Invoke, asknames.Invoke, sendmessage.Invoke ); }
private void Catchup_Tick(object sender, EventArgs e) { Catchup.Enabled = false; var r = default(FriendStatus); foreach (FriendStatus item in this.FriendStatusList) { if (item.IsOnline) { r = item; break; } } if (r == null) { AppendTextLine("*** Starting fresh..."); } else { AppendTextLine("*** Catching up with " + r.Name + "..."); var x = new EncodedMessage { Message = Message_Catchup }; ahmanize( new ChatRequest.Requests.sendmessage( r.Name, Nickname, "0", x.ToString(), "100" ) ); } }
public void BroadcastMessage(EncodedMessage x, string[] Friends) { // yay, lets try to see if any of our friends is online foreach (var Friend in Friends) { if (string.IsNullOrEmpty(Friend)) { // shooting blanks are we? } else if (Friend == Nickname) { } else { ahmanize( new ChatRequest.Requests.sendmessage( Friend, Nickname, "0", x.ToString(), "100" ) ); } } }
public void PollerGotDataLine(string path, string myname) { var sendname = new sendname(); var findname = new findname(); var asknames = new asknames(); var sendmessage = new sendmessage(); findname.BeforeInvoke = delegate { // let the discovery service know // that somebody wants that name // if we do we should let the poor sap know about it! if (findname.name == this.Nickname) { if (findname.myname == this.Pseudoname) { // we swallow our own question! } else { this.AppendTextLine(findname.name + " is registered to me!"); ahmanize( new ChatRequest.Requests.sendname( // to whom? findname.myname, // from whom? Nickname, // name we know about Nickname, "0" ) ); } return; } var r = default(FriendStatus); foreach (FriendStatus item in this.FriendStatusList) { if (item.Name == sendmessage.myname) r = item; } if (r != null) { if (r.IsOnline) { this.AppendTextLine(findname.name + " is registered to a friend!"); ahmanize( new ChatRequest.Requests.sendname( // to whom? findname.myname, // from whom? r.Name, // name we know about r.Name, "0" ) ); } } }; sendname.BeforeInvoke = delegate { if (sendname.name == Nickname) { this.AppendTextLine("*** Nickname " + Nickname + " already taken! Better luck next time!"); this.RegistrationTimeout.Enabled = false; this.Poller.Enabled = false; return; } }; sendmessage.BeforeInvoke = delegate { EncodedMessage m = sendmessage.message; m.Sender = sendmessage.myname; if (m.Message == Message_SeeYouLater) { this.AppendTextLine("*** " + m.Sender + " has left the chat!"); var r = default(FriendStatus); foreach (FriendStatus item in this.FriendStatusList) { if (item.Name == sendmessage.myname) r = item; } if (r != null) this.FriendStatusList.Remove(r); return; } if (m.Message == Message_Ping) { var x = new EncodedMessage { Message = Message_Pong }; ahmanize( new ChatRequest.Requests.sendmessage( sendmessage.myname, Nickname, "0", x.ToString(), "100" ) ); var r = default(FriendStatus); foreach (FriendStatus item in this.FriendStatusList) { if (item.Name == sendmessage.myname) r = item; } if (r == null) this.FriendStatusList.Add(new FriendStatus { Name = sendmessage.myname }); return; } if (m.Message == Message_Pong) { foreach (FriendStatus item in this.FriendStatusList) { if (item.Name == sendmessage.myname) item.LastSeen = DateTime.Now.Ticks; } return; } if (m.Message == Message_Catchup) { this.AppendTextLine("*** " + m.Sender + " wants to catch up..."); foreach (EncodedMessage mm in this.Messages) { var xx = new EncodedMessage { Time = mm.Time, Sender = Nickname, Message = mm.Sender + " said " + mm.Message }; BroadcastMessage(xx, new[] { m.Sender }); } return; } AppendMessage(m); }; path.Chop("/chat").GetArguments().AsParametersTo( sendname.Invoke, findname.Invoke, asknames.Invoke, sendmessage.Invoke ); }
private void Poller_Tick(object sender, EventArgs e) { this.PollerCounter++; this.Text = "" + PollerCounter; Poller.Enabled = false; if (NicknameRegistered) ChatCheck(Nickname); else ChatCheck(Pseudoname); // we should check on our friends var w = new StringBuilder(); foreach (FriendStatus k in this.FriendStatusList) { k.PollerCounter++; if ((k.PollerCounter % 6) == 0) { var x = new EncodedMessage { Message = Message_Ping }; ahmanize( new ChatRequest.Requests.sendmessage( k.Name, Nickname, "0", x.ToString(), "100" ) ); } w.AppendLine(k.ToString()); } this.textBox6.Text = w.ToString(); }