Esempio n. 1
0
        public void MessageError(SendMessage errorMsg)
        {
            Control sync = this.ActiveControl;

              if (sync != null && sync.InvokeRequired)
              {
            sync.Invoke((Action)delegate { this.MessageError(errorMsg);  }, null);
            return;
              }

              int begin = tbMessages.Text.Length;
              String messageStr = errorMsg.toSend.messageStr;
              String error = "Error sending message: " + messageStr +
                         "\r\nEnding chat.";
              int errorLength = error.Length;
              tbMessages.Text += error;
              tbMessages.Select(begin, errorLength);
              tbMessages.SelectionColor = Color.Red;
              tbUserMessage.ReadOnly = true;

              this.userList.UserList.Remove(chatUser);
              // Handle memory
              messageStr = null;
              error = null;
        }
Esempio n. 2
0
        public void SendMsg(Message toSend)
        {
            String userTime;

              userTime = AddUserTime(myUsername, true);
              DisplayMsg(userTime, toSend.messageStr, myUsername);
              SendMessage sending = new SendMessage(toSend, chatUser, myUsername,
                                            this);
              chatUser.touchAwaitingMACK(true, ref sending, 0);

              // Handle memory
              userTime = null;
        }
Esempio n. 3
0
 public bool touchAwaitingMACK(bool write, ref SendMessage message, int id)
 {
     lock (this)
       {
     if (write)
     {
       awaitingMACK.Add(message);
       return false;
     }
     else
     {
       foreach (SendMessage waiting in awaitingMACK)
       {
     if (waiting.iSequenceID == id)
     {
       waiting.MsgRcvd();
       awaitingMACK.Remove(waiting);
       return true;
     }
       }
       return false;
     }
       }
 }