You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Zero/ZeroLevel/Services/Network/Model/ServiceEndpointInfo.cs

44 lines
1.3 KiB

using System;
using ZeroLevel.Services.Serialization;
namespace ZeroLevel.Network
{
/// <summary>
/// Endpoint
/// </summary>
public class ServiceEndpointInfo :
IBinarySerializable, IEquatable<ServiceEndpointInfo>
{
public string Endpoint { get; set; }
public ZeroServiceInfo ServiceInfo { get; set; }
public bool Equals(ServiceEndpointInfo other)
{
if (other == null) return false;
if (string.Compare(this.Endpoint, other.Endpoint, true) != 0) return false;
return this.ServiceInfo?.Equals(other.ServiceInfo) ?? other != null ? false : true;
}
public override bool Equals(object obj)
{
return this.Equals(obj as ServiceEndpointInfo);
}
public override int GetHashCode()
{
return this.ServiceInfo?.GetHashCode() ?? 0 ^ Endpoint?.GetHashCode() ?? 0;
}
public void Serialize(IBinaryWriter writer)
{
writer.WriteString(this.Endpoint);
writer.Write(this.ServiceInfo);
}
public void Deserialize(IBinaryReader reader)
{
this.Endpoint = reader.ReadString();
this.ServiceInfo = reader.Read<ZeroServiceInfo>();
}
}
}

Powered by TurnKey Linux.