using System;
using ZeroLevel.Services.Serialization;
namespace ZeroLevel.Network
{
///
/// Endpoint
///
public class ServiceEndpointInfo :
IBinarySerializable, IEquatable
{
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();
}
}
}