Event DecodeEventInfo(WireProtocol.EventInfo info) { EventRequest req = FindRequest(info.requestId); if (info.eventKind == WireProtocol.EVENT_VM_START) { WireProtocol.VMStartEventInfo einfo = (WireProtocol.VMStartEventInfo)info; return(new VMStartEventImpl(vm, req, new ThreadReferenceImpl(vm, einfo.thread), new AppDomainMirrorImpl(vm, einfo.domain))); } else if (info.eventKind == WireProtocol.EVENT_VM_DEATH) { return(new VMDeathEventImpl(vm, req)); } else if (info.eventKind == WireProtocol.EVENT_THREAD_START) { WireProtocol.ThreadStartEventInfo einfo = (WireProtocol.ThreadStartEventInfo)info; return(new ThreadStartEventImpl(vm, req, new ThreadReferenceImpl(vm, einfo.thread))); } else if (info.eventKind == WireProtocol.EVENT_THREAD_DEATH) { WireProtocol.ThreadDeathEventInfo einfo = (WireProtocol.ThreadDeathEventInfo)info; return(new ThreadDeathEventImpl(vm, req, new ThreadReferenceImpl(vm, einfo.thread))); } else { throw new NotImplementedException(); } }
internal void RemoveRequest(EventRequest req, int id) { lock (requests_lock) { requests.Remove(id); } }
internal void AddRequest(EventRequest req, int id) { lock (requests_lock) { requests [id] = req; } }