Files
UnrealEngineUWP/Engine/Source/Programs/CrashReporter/CrashReportProcess/DataRouterConsumer.cs
Ben Marsh 20bf0eb6a1 Updating copyright notices to 2017 (copying from //Tasks/UE4/Dev-Copyright-2017).
#rb none
#lockdown Nick.Penwarden

[CL 3226823 by Ben Marsh in Main branch]
2016-12-08 08:52:44 -05:00

65 lines
1.6 KiB
C#

// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
using System;
using System.IO;
using ProtoBuf;
namespace Tools.CrashReporter.CrashReportProcess
{
class DataRouterConsumer
{
[ProtoContract]
public class ProtocolBufferRecord
{
[ProtoMember(1)]
public string RecordId { get; set; }
[ProtoMember(2)]
public string AppId { get; set; }
[ProtoMember(3)]
public string AppVersion { get; set; }
[ProtoMember(4)]
public string Environment { get; set; }
[ProtoMember(5)]
public string UserId { get; set; }
[ProtoMember(6)]
public string UserAgent { get; set; }
[ProtoMember(7)]
public string UploadType { get; set; }
[ProtoMember(8)]
public string Meta { get; set; }
[ProtoMember(9)]
public string IpAddress { get; set; }
[ProtoMember(10)]
public string FilePath { get; set; }
[ProtoMember(11)]
public string ReceivedTimestamp { get; set; }
[ProtoMember(12)]
public byte[] Payload { get; set; }
[ProtoMember(13)]
public string Geo { get; set; }
[ProtoMember(14)]
public string SessionId { get; set; }
public bool HasPayload { get { return Payload != null && Payload.Length > 0; } }
}
public string LastError { get; private set; }
public bool TryParse(Stream InStream, out ProtocolBufferRecord Message)
{
try
{
Message = Serializer.DeserializeWithLengthPrefix<ProtocolBufferRecord>(InStream, PrefixStyle.Base128);
return Message.HasPayload;
}
catch (Exception ex)
{
LastError = ex.ToString();
Message = new ProtocolBufferRecord();
return false;
}
}
}
}