/// <summary> /// Serializes an operation response. /// </summary> /// <param name="stream">The stream.</param> /// <param name="operationResponse"> The operation response.</param> /// <exception cref="T:System.IO.InvalidDataException"> /// A value can not be serialized. ///</exception> ///<exception cref="T:System.ArrayTypeMismatchException"> /// A collection with different types can not be serialized. ///</exception> private static void SerializeOperationResponse(Stream stream, OperationResponse operationResponse) { if (operationResponse.Parameters != null) { if (operationResponse.Parameters.Remove(0xf4)) { log.WarnFormat("SendOperationResponse - removed reserved parameter {1} from operation response {0}", new object[] { operationResponse.OperationCode, (byte)0xf4 }); } if (operationResponse.Parameters.Remove(0)) { log.WarnFormat("SendOperationResponse - removed reserved parameter {1} from operation response {0}", new object[] { operationResponse.OperationCode, (byte)0 }); } if (operationResponse.Parameters.Remove(1)) { log.WarnFormat("SendOperationResponse - removed reserved parameter {1} from operation response {0}", new object[] { operationResponse.OperationCode, (byte)1 }); } } IBinaryWriter writer = new BigEndianBinaryWriter(stream); bool flag = !string.IsNullOrEmpty(operationResponse.DebugMessage); bool flag2 = operationResponse.Parameters != null; int num = flag2 ? operationResponse.Parameters.Count : 0; num += flag ? 3 : 2; writer.WriteInt16((short)num); writer.WriteByte(0xf4); GpBinaryByteWriter.Write(writer, operationResponse.OperationCode); writer.WriteByte(0); GpBinaryByteWriter.Write(writer, (int)operationResponse.ReturnCode); if (flag) { writer.WriteByte(1); GpBinaryByteWriter.Write(writer, operationResponse.DebugMessage); } if (flag2) { foreach (KeyValuePair <byte, object> pair in operationResponse.Parameters) { writer.WriteByte(pair.Key); GpBinaryByteWriter.Write(writer, pair.Value); } } }
/// <summary> /// Serializes an operation request. /// </summary> /// <param name="stream">The stream.</param> /// <param name="operationRequest"> The operation request.</param> /// <exception cref="T:System.IO.InvalidDataException"> /// A value can not be serialized. ///</exception> ///<exception cref="T:System.ArrayTypeMismatchException"> /// A collection with different types can not be serialized. ///</exception> private static void SerializeOperationRequest(Stream stream, OperationRequest operationRequest) { IBinaryWriter writer = new BigEndianBinaryWriter(stream); writer.WriteByte(operationRequest.OperationCode); writer.WriteBoolean(false); if (operationRequest.Parameters != null) { writer.WriteInt16((short)operationRequest.Parameters.Count); foreach (KeyValuePair <byte, object> pair in operationRequest.Parameters) { writer.WriteByte(pair.Key); GpBinaryByteWriter.Write(writer, pair.Value); } } else { writer.WriteInt16(0); } }
/// <summary> /// serializes the event data to a stream. /// </summary> /// <param name="stream">The stream.</param> /// <param name="eventData">The event data.</param> private void SerializeEventData(ReusableMemoryStream stream, IEventData eventData) { if ((eventData.Parameters != null) && eventData.Parameters.Remove(0xf4)) { log.WarnFormat("SendEvent - removed reserved parameter {1} from event {0}", new object[] { eventData.Code, (byte)0xf4 }); } BigEndianBinaryWriter writer = new BigEndianBinaryWriter(stream); stream.Seek((long)this.headerSize, SeekOrigin.Begin); bool flag = eventData.Parameters != null; int num = flag ? (eventData.Parameters.Count + 1) : 1; writer.WriteInt16((short)num); writer.WriteByte(0xf4); GpBinaryByteWriter.Write(writer, eventData.Code); if (flag) { foreach (KeyValuePair <byte, object> pair in eventData.Parameters) { writer.WriteByte(pair.Key); GpBinaryByteWriter.Write(writer, pair.Value); } } }
private static void SerializeEventData(ReusableMemoryStream stream, IEventData eventData) { BigEndianBinaryWriter binaryWriter = new BigEndianBinaryWriter(stream); GpBinaryByteWriter.WriteEventData(binaryWriter, eventData); }
public void Serialize(Stream stream, object obj) { BigEndianBinaryWriter writer = new BigEndianBinaryWriter(stream); GpBinaryByteWriter.Write(writer, obj); }
private static void SerializeOperationResponse(Stream stream, OperationResponse operationResponse) { IBinaryWriter writer = new BigEndianBinaryWriter(stream); GpBinaryByteWriter.WriteOperationResponse(writer, operationResponse); }
private static void SerializeOperationRequest(Stream stream, OperationRequest operationRequest) { IBinaryWriter writer = new BigEndianBinaryWriter(stream); GpBinaryByteWriter.WriteOperationRequest(writer, operationRequest); }