private FPData CommonPeekHead(byte[] bytes) { if (bytes.Length == 12) { FPData data = this._pkg.PeekHead(bytes); if (!this.CheckHead(data)) { return(null); } if (this._pkg.IsOneWay(data)) { data.SetPkgLen(12 + data.GetSS() + data.GetPsize()); } if (this._pkg.IsTwoWay(data)) { data.SetPkgLen(16 + data.GetSS() + data.GetPsize()); } if (this._pkg.IsAnswer(data)) { data.SetPkgLen(16 + data.GetPsize()); } data.Bytes = this._pkg.GetByteArrayRange(bytes, 0, bytes.Length - 1); return(data); } return(null); }
private byte[] EnCodeAnswer(FPData data) { System.Text.ASCIIEncoding encoder = new System.Text.ASCIIEncoding(); MemoryStream ms = this.BuildHeader(data, 16 + data.GetPsize()); ms.WriteByte((byte)data.GetSS()); byte[] psizeBytes = BitConverter.GetBytes(data.GetPsize()); ms.Write(psizeBytes, 0, psizeBytes.Length); byte[] seqBytes = BitConverter.GetBytes(data.GetSeq()); ms.Write(seqBytes, 0, seqBytes.Length); byte[] payloadBytes = null; if (this.IsJson(data)) { payloadBytes = encoder.GetBytes(data.JsonPayload()); } if (this.IsMsgPack(data)) { payloadBytes = data.MsgpackPayload(); } ms.Write(payloadBytes, 0, payloadBytes.Length); return(this.StreamToBytes(ms)); }
private byte[] EnCodeOneway(FPData data) { if (data != null) { System.Text.ASCIIEncoding encoder = new System.Text.ASCIIEncoding(); MemoryStream ms = this.BuildHeader(data, 12 + data.GetSS() + data.GetPsize()); ms.WriteByte((byte)data.GetSS()); byte[] psizeBytes = BitConverter.GetBytes(data.GetPsize()); ms.Write(psizeBytes, 0, psizeBytes.Length); string method = (data.GetMethod() != null) ? data.GetMethod() : ""; byte[] methodBytes = encoder.GetBytes(method); ms.Write(methodBytes, 0, methodBytes.Length); byte[] payloadBytes = null; if (this.IsJson(data)) { string json = (data.JsonPayload() != null) ? data.JsonPayload() : ""; payloadBytes = encoder.GetBytes(json); } if (this.IsMsgPack(data)) { payloadBytes = data.MsgpackPayload(); } if (payloadBytes != null) { ms.Write(payloadBytes, 0, payloadBytes.Length); } return(this.StreamToBytes(ms)); } return(null); }
private bool DeCodeAnswer(byte[] bytes, FPData data) { if (bytes.Length != 4 + data.GetPsize()) { return(false); } data.SetSeq((int)BitConverter.ToUInt32(this.GetByteArrayRange(bytes, 0, 3), 0)); if (this.IsJson(data)) { data.SetPayload(this.GetString(this.GetByteArrayRange(bytes, 4, bytes.Length - 1))); } if (this.IsMsgPack(data)) { data.SetPayload(this.GetByteArrayRange(bytes, 4, bytes.Length - 1)); } return(true); }
private bool DeCodeOneWay(byte[] bytes, FPData data) { if (bytes.Length != data.GetSS() + data.GetPsize()) { return(false); } data.SetMethod(this.GetString(this.GetByteArrayRange(bytes, 0, data.GetSS() - 1))); if (this.IsJson(data)) { data.SetPayload(this.GetString(this.GetByteArrayRange(bytes, data.GetSS(), bytes.Length - 1))); } if (this.IsMsgPack(data)) { data.SetPayload(this.GetByteArrayRange(bytes, data.GetSS(), bytes.Length - 1)); } return(true); }
private bool DeCodeTwoWay(byte[] bytes, FPData data) { if (bytes != null && (bytes.Length == 4 + data.GetSS() + data.GetPsize())) { data.SetSeq((int)BitConverter.ToUInt32(this.GetByteArrayRange(bytes, 0, 3), 0)); data.SetMethod(this.GetString(this.GetByteArrayRange(bytes, 4, data.GetSS() + 4 - 1))); if (this.IsJson(data)) { data.SetPayload(this.GetString(this.GetByteArrayRange(bytes, 4 + data.GetSS(), bytes.Length - 1))); return(true); } if (this.IsMsgPack(data)) { data.SetPayload(this.GetByteArrayRange(bytes, 4 + data.GetSS(), bytes.Length - 1)); return(true); } } return(false); }