public static byte[] Serialize(BasePacket packet) { using (MemoryStream memoryStream = new MemoryStream()) { BinaryFormatter binaryFormatter = new BinaryFormatter(); binaryFormatter.Serialize(memoryStream, packet); return memoryStream.ToArray(); } }
private BaseResponse _handler_Invoke(BasePacket packet) { InvokeRequest p = packet as InvokeRequest; ProxyHolder proxy = this.GetProxyByID(p.ObjectID); if (proxy == null) throw new Exception("Proxy Nr. not found: " + p.ObjectID); return new InvokeResponse(proxy.Invoke(p.Name, p.Arguments), p); }
private BaseResponse _handler_GetMember(BasePacket packet) { GetMemberRequest p = packet as GetMemberRequest; ProxyHolder proxy = this.GetProxyByID(p.ObjectID); if(proxy == null) throw new Exception("Proxy Nr. not found: " + p.ObjectID); return new GetMemberResponse(proxy.GetMember(p.Member, p.ReturnType), p); }
public void Send(BasePacket packet) { byte[] data = packet.Serialize(); byte[] outBuffer = new byte[data.Length + 4]; ByteWriter.WriteInt32_BE(data.Length, outBuffer, 0); Array.Copy(data, 0, outBuffer, 4, data.Length); this._socket.Send(outBuffer); }
public BaseResponse WaitForResponse(BasePacket id, int timeout) { long end = DateTime.Now.Ticks + timeout * TimeSpan.TicksPerMillisecond; BaseResponse resp = null; while (end > DateTime.Now.Ticks) { resp = this.GetResponse(id); if (resp != null) break; Thread.Sleep(50); } return resp; }
public BaseResponse GetResponse(BasePacket id) { BaseResponse resp = _responses.ReturnFirstTrue(response => response.ResponseFor == id.ID); if (resp != null) _responses.Remove(resp); return resp; }
public void AddResponseCallback(Action<BaseResponse> callback, BasePacket forPacket) { _responsCallbacks.Add(forPacket.ID, callback); }
private BaseResponse _handler_SetMember(BasePacket packet) { _addresponse((BaseResponse)packet); return null; }
private BaseResponse _handler_Proxy(BasePacket packet) { _addresponse((BaseResponse)packet); return null; }
private BaseResponse _handler_Exception(BasePacket packet) { _addresponse((BaseResponse)packet); return null; }
public GetMemberResponse(Object result, BasePacket resp) : base(resp) { this.Result = result; }
public ProxyResponse(int objectID, BasePacket resp) : base(resp) { this.ObjectID = objectID; }
public SetMemberResponse(bool success, BasePacket resp) : base(resp) { this.Success = success; }
private BaseResponse _handler_Proxy(BasePacket packet) { ProxyRequest p = packet as ProxyRequest; ProxyHolder proxy = this.GetProxyByName(p.Name); if (proxy == null) throw new Exception("Proxy not found: " + p.Name); return new ProxyResponse(proxy.ObjectID, p); }
private BaseResponse _handler_SetMember(BasePacket packet) { SetMemberRequest p = packet as SetMemberRequest; ProxyHolder proxy = this.GetProxyByID(p.ObjectID); if (proxy == null) throw new Exception("Proxy Nr. not found: " + p.ObjectID); return new SetMemberResponse(proxy.SetMember(p.Name, p.Value), p); }
public ExceptionResponse(string message, BasePacket resp) : base(resp) { this.Message = message; }
public BaseResponse(BasePacket resp) { this.ResponseFor = resp.ID; }
public InvokeResponse(object result, BasePacket resp) : base(resp) { this.Result = result; }