/*
* ZeroTier One - Network Virtualization Everywhere
* Copyright (C) 2011-2015 ZeroTier, Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see
* Defined in ZeroTierOne.h as ZT_Peer */ public class Peer { private final long address; private final int versionMajor; private final int versionMinor; private final int versionRev; private final int latency; private final PeerRole role; private final PeerPhysicalPath[] paths; public Peer(long address, int versionMajor, int versionMinor, int versionRev, int latency, PeerRole role, PeerPhysicalPath[] paths) { this.address = address; this.versionMajor = versionMajor; this.versionMinor = versionMinor; this.versionRev = versionRev; this.latency = latency; this.role = role; this.paths = paths; } @Override public String toString() { return "Peer(" + StringUtils.addressToString(address) + ", " + versionMajor + ", " + versionMinor + ", " + versionRev + ", " + latency + ", " + role + ", " + Arrays.toString(paths) + ")"; } /** * ZeroTier address (40 bits) */ public long getAddress() { return address; } /** * Remote major version or -1 if not known */ public int getVersionMajor() { return versionMajor; } /** * Remote minor version or -1 if not known */ public int getVersionMinor() { return versionMinor; } /** * Remote revision or -1 if not known */ public int getVersionRev() { return versionRev; } /** * Last measured latency in milliseconds or zero if unknown */ public int getLatency() { return latency; } /** * What trust hierarchy role does this device have? */ public PeerRole getRole() { return role; } /** * Known network paths to peer */ public PeerPhysicalPath[] getPaths() { return paths; } }