public void SetError( byte[] errorPayload ) { if (errorPayload == null || errorPayload.Length < 24) { SetError("The error payload is not large enough to be valid"); return; } /* * Unpack the metadata. Eight bytes: * 0..3 -> integer timestamp * 4 -> Message level (severity) * 5 -> Size of the message * 6..7 -> Line number (?) */ DateTime timestamp = Util.GetDateTimeFromTimestamp(Util.GetUInt32(errorPayload, 0)); byte level = errorPayload[4]; byte messageSize = errorPayload[5]; ushort lineNumber = Util.GetUInt16(errorPayload, 6); // Now to extract the actual data string fileName = Util.GetString(errorPayload, 8, 16); string message = Util.GetString(errorPayload, 24, messageSize); ErrorDetails = new ErrorDetails { Timestamp = timestamp, Level = level, LineNumber = lineNumber, Filename = fileName, Message = message }; ErrorMessage = ErrorDetails.ToString(); }
public void SetError(byte[] errorPayload) { if (errorPayload == null || errorPayload.Length < 24) { SetError("The error payload is not large enough to be valid"); return; } /* * Unpack the metadata. Eight bytes: * 0..3 -> integer timestamp * 4 -> Message level (severity) * 5 -> Size of the message * 6..7 -> Line number (?) */ DateTime timestamp = Util.GetDateTimeFromTimestamp(Util.GetUInt32(errorPayload, 0)); byte level = errorPayload[4]; byte messageSize = errorPayload[5]; ushort lineNumber = Util.GetUInt16(errorPayload, 6); // Now to extract the actual data string fileName = Util.GetString(errorPayload, 8, 16); string message = Util.GetString(errorPayload, 24, messageSize); ErrorDetails = new ErrorDetails { Timestamp = timestamp, Level = level, LineNumber = lineNumber, Filename = fileName, Message = message }; ErrorMessage = ErrorDetails.ToString(); }