123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using Newtonsoft.Json;
- namespace WinUI
- {
- public class ZeroTierPeer : IEquatable<ZeroTierPeer>
- {
- [JsonProperty("address")]
- public string Address { get; set; }
- private Int64 _lastUnicast;
- [JsonProperty("lastUnicastFrame")]
- public Int64 LastUnicastFrame
- {
- get
- {
- if (_lastUnicast == 0)
- return 0;
- TimeSpan t = DateTime.UtcNow - new DateTime(1970, 1, 1);
- Int64 millisecondsSinceEpoch = (Int64)t.TotalMilliseconds;
- return (millisecondsSinceEpoch - _lastUnicast) / 1000;
- }
- set
- {
- _lastUnicast = value;
- }
- }
- private Int64 _lastMulticast;
- [JsonProperty("lastMulticastFrame")]
- public Int64 LastMulticastFrame
- {
- get
- {
- if (_lastMulticast == 0)
- return 0;
- TimeSpan t = DateTime.UtcNow - new DateTime(1970, 1, 1);
- Int64 millisecondsSinceEpoch = (Int64)t.TotalMilliseconds;
- return (millisecondsSinceEpoch - _lastMulticast) / 1000;
- }
- set
- {
- _lastMulticast = value;
- }
- }
- [JsonProperty("versionMajor")]
- public int VersionMajor { get; set; }
- [JsonProperty("versionMinor")]
- public int VersionMinor { get; set; }
- [JsonProperty("versionRev")]
- public int VersionRev { get; set; }
- [JsonProperty("version")]
- public string Version { get; set; }
- public string VersionString
- {
- get
- {
- if (Version == "-1.-1.-1")
- return "-";
- else
- return Version;
- }
- }
- [JsonProperty("latency")]
- public string Latency { get; set; }
- [JsonProperty("role")]
- public string Role { get; set; }
- [JsonProperty("paths")]
- public List<ZeroTierPeerPhysicalPath> Paths { get; set; }
- public string DataPaths
- {
- get
- {
- string pathStr = "";
- foreach(ZeroTierPeerPhysicalPath path in Paths)
- {
- pathStr += path.Address + "\n";
- }
- return pathStr;
- }
- }
- public bool Equals(ZeroTierPeer other)
- {
- return this.Address.Equals(other.Address, StringComparison.InvariantCultureIgnoreCase);
- }
- public void Update(ZeroTierPeer other)
- {
- _lastUnicast = other._lastUnicast;
- _lastMulticast = other._lastMulticast;
- VersionMajor = other.VersionMajor;
- VersionMinor = other.VersionMinor;
- VersionRev = other.VersionRev;
- Version = other.Version;
- Latency = other.Latency;
- Role = other.Role;
- Paths = other.Paths;
- }
- }
- }
|