public void AddPermanentEvent(YahooService service, ResponseReceivedHandler messageHandler, object tag) { if (!permanentEvents.Contains(service)) permanentEvents.Add(service, new Pair(messageHandler, tag)); else permanentEvents[service] = new Pair(messageHandler, tag); }
public void AddOneTimeEvent(YahooService service, ResponseReceivedHandler messageHandler, object tag) { if (!this.oneTimeEvents.Contains(service)) this.oneTimeEvents.Add(service, new Pair(messageHandler, tag)); else this.oneTimeEvents[service] = new Pair(messageHandler, tag); }
/// <summary> /// Sends a text command to the gdb process. This method may block if the /// stdin of the gdb process is currently blocked. /// </summary> /// <param name="cmd"></param> public virtual void SendCmd(string cmd, ResponseReceivedHandler handler) { if (Status == StatusEnum.Terminated || Status == StatusEnum.Terminating) { throw new GdbException("Cannot send command, internal gdb is not active"); } //Wait until we are allowed to enter gdbReadyEvent.WaitOne(); //Set the response callback for this caller responseReceivedCallback = handler; //If terminating or terminated, immediately notify client with a null reply if (Status == StatusEnum.Terminating || Status == StatusEnum.Terminated) { if (responseReceivedCallback != null) { responseReceivedCallback(this, null); } return; } //OK, set status to ReplyPending and submit command to gdb Status = StatusEnum.ReplyPending; Logger.Instance.Debug("[gdb] <- " + cmd); writer.WriteLine(cmd); }
private void SendNotifyMessage(Message message, ResponseReceivedHandler response, object tag, bool addLineEnding) { this.notifyRouter.SendMessage(message, response, tag); // restart timer timer.Stop(); timer.Start(); }
public MessageRouter(Protocol protocol, Proxy.IConnection connection, ResponseReceivedHandler defaultMessageSink, ResponseReceivedHandler onDisconnect) { this.protocol = protocol; this.connection = connection; this.defaultMessageSink = defaultMessageSink; this.onDisconnectHandler = onDisconnect; // set up receiving async call this.connection.BeginReceive(receiveBuffer, 0, receiveBuffer.Length, new AsyncCallback(OnDataReceive), null); }
public MessageRouter(Protocol protocol, Proxy.IConnection connection, ResponseReceivedHandler defaultMessageSink, ResponseReceivedHandler onDisconnect) { this.protocol = protocol; this.connection = connection; this.defaultMessageSink = defaultMessageSink; this.onDisconnectHandler = onDisconnect; // set up receiving async call this.connection.BeginReceive(receiveBuffer, 0, receiveBuffer.Length, new AsyncCallback(OnDataReceive), null); }
public void AddOneTimeEvent(YahooService service, ResponseReceivedHandler messageHandler, object tag) { if (!this.oneTimeEvents.Contains(service)) { this.oneTimeEvents.Add(service, new Pair(messageHandler, tag)); } else { this.oneTimeEvents[service] = new Pair(messageHandler, tag); } }
public void AddCodeEvent(string code, ResponseReceivedHandler messageHandler, object tag) { if (!codeEvents.Contains(code)) { codeEvents.Add(code, new Pair(messageHandler, tag)); } else { codeEvents[code] = new Pair(messageHandler, tag); } }
public void AddPermanentEvent(YahooService service, ResponseReceivedHandler messageHandler, object tag) { if (!permanentEvents.Contains(service)) { permanentEvents.Add(service, new Pair(messageHandler, tag)); } else { permanentEvents[service] = new Pair(messageHandler, tag); } }
private void AddContactToList(ListType listType, Friend friend, bool add, ResponseReceivedHandler handler, object tag) { string contactListString = this.ConvertListTypeToString(listType); string additional = string.Empty; switch (listType) { case ListType.Forward: additional = " 0"; break; } this.notifyRouter.SendMessage( Message.ConstructMessage(add ? "ADD" : "REM", contactListString + " " + friend.Username + (add ? " " + friend.Username : "") + additional), new ResponseReceivedHandler(OnAddContactToListResponse), new object[] { friend, handler, tag } ); }
private void OnAddContactToListResponse(MessageRouter router, Message message, object tag) { object[] p = (object[])tag; Friend friend = (Friend)p[0]; ResponseReceivedHandler handler = (ResponseReceivedHandler)p[1]; object tag2 = p[2]; if (HandleListChangeMessage(message, friend)) { // call user-defined handler method if (handler != null) { handler(router, message, new Pair(tag2, true)); } } else { if (handler != null) { handler(router, message, new Pair(tag2, false)); } } }
public void SendMessage(Message message, ResponseReceivedHandler responseReceivedEvent, object tag, bool addLineEnding) { byte[] byteMessage = System.Text.Encoding.ASCII.GetBytes(message.RawMessage + (addLineEnding ? "\r\n" : "")); try { this.connection.Send(byteMessage); this.protocol.control.WriteDebug("-----------------------------------------"); this.protocol.control.WriteDebug("Sent"); this.protocol.control.WriteDebug(System.Text.ASCIIEncoding.ASCII.GetString(byteMessage)); this.protocol.control.WriteDebug("-----------------------------------------"); if (responseReceivedEvent != null) { transactionEvents.Add(message.TransactionID, new Pair(responseReceivedEvent, tag)); } } catch { // couldn't write to the stream. we've been disconnected this.onDisconnect(this, null, null); } }
public void SendMessage(Message message, ResponseReceivedHandler responseReceivedEvent, object tag) { SendMessage(message, responseReceivedEvent, tag, true); }
private void AddContactToList(ListType listType, Friend friend, bool add, ResponseReceivedHandler handler) { AddContactToList(listType, friend, add, handler, null); }
private void ChangeStatus(OnlineStatus status, ResponseReceivedHandler responseHandler, object tag) { SendNotifyMessage( Message.ConstructMessage("CHG", this.ConvertStatusToString(status)), responseHandler, tag); }
private void ChangeStatus(OnlineStatus status, ResponseReceivedHandler responseHandler) { this.ChangeStatus(status, responseHandler, null); }
public void AddCodeEvent(string code, ResponseReceivedHandler messageHandler) { AddCodeEvent(code, messageHandler, null); }
private void SendNotifyMessage(Message message, ResponseReceivedHandler response, object tag) { SendNotifyMessage(message, response, tag, true); }
public void AddPermanentEvent(YahooService service, ResponseReceivedHandler messageHandler) { AddPermanentEvent(service, messageHandler, null); }
/// <summary> /// Unregisters a ResponseReceivedHandler, being previously registered in SendCmd() /// </summary> public void UnregisterResponseReceivedHandler() { responseReceivedCallback = null; }
public void SendMessage(Message msg, object context, ResponseReceivedHandler responseHandler) { _unacked.Add(msg.SequenceNumber, new AckContext { Request = msg, Context = context, Handler = responseHandler }); _channel.SendMessage(msg); }
public void AddPermanentEvent(YahooService service, ResponseReceivedHandler messageHandler) { AddPermanentEvent(service, messageHandler, null); }