Files
UnrealEngineUWP/Engine/Source/Programs/BuildAgent/Workspace/Common/FileContentId.cs
Ryan Durand 9ef3748747 Updating copyrights for Engine Programs.
#rnx
#rb none
#jira none

#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869242 in //Fortnite/Release-12.00/... via CL 10869536
#ROBOMERGE-BOT: FORTNITE (Main -> Dev-EngineMerge) (v613-10869866)

[CL 10870955 by Ryan Durand in Main branch]
2019-12-26 23:01:54 -05:00

78 lines
1.4 KiB
C#

// Copyright Epic Games, Inc. All Rights Reserved.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tools.DotNETCommon;
namespace BuildAgent.Workspace.Common
{
class FileContentId : IBinarySerializable
{
const int DigestLength = 16;
public byte[] Digest;
public string Type;
public FileContentId(byte[] Digest, string Type)
{
this.Digest = Digest;
this.Type = Type;
}
public FileContentId(BinaryReader Reader)
{
this.Digest = Reader.ReadBytes(DigestLength);
this.Type = Reader.ReadString();
}
public void Write(BinaryWriter Writer)
{
Writer.Write(Digest);
Writer.Write(Type);
}
public override bool Equals(object Other)
{
FileContentId OtherContentId = Other as FileContentId;
if(OtherContentId == null)
{
return false;
}
for(int Idx = 0; Idx < DigestLength; Idx++)
{
if(OtherContentId.Digest[Idx] != Digest[Idx])
{
return false;
}
}
if(OtherContentId.Type != Type)
{
return false;
}
return true;
}
public override int GetHashCode()
{
int HashCode = Type.GetHashCode();
for(int Idx = 0; Idx < DigestLength; Idx++)
{
HashCode = (HashCode * 31) + Digest[Idx];
}
return HashCode;
}
public override string ToString()
{
return String.Format("{0} ({1})", StringUtils.FormatHexString(Digest), Type);
}
}
}