mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-04-07 19:24:13 +00:00
added infrastructure for Node.peers() and Node.networks() functions
Signed-off-by: Grant Limberg <glimberg@gmail.com>
This commit is contained in:
parent
7f6556eba0
commit
9ab7280703
@ -1043,6 +1043,28 @@ JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_version
|
||||
return versionObj;
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: com_zerotierone_sdk_Node
|
||||
* Method: peers
|
||||
* Signature: (J)Ljava/util/ArrayList;
|
||||
*/
|
||||
JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_peers(
|
||||
JNIEnv *env, jobject obj, jlong id)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: com_zerotierone_sdk_Node
|
||||
* Method: networks
|
||||
* Signature: (J)Ljava/util/ArrayList;
|
||||
*/
|
||||
JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_networks(
|
||||
JNIEnv *env, jobject obj, jlong id)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
@ -106,11 +106,27 @@ JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_networkConfig
|
||||
/*
|
||||
* Class: com_zerotierone_sdk_Node
|
||||
* Method: version
|
||||
* Signature: (J)Lcom/zerotierone/sdk/Version;
|
||||
* Signature: ()Lcom/zerotierone/sdk/Version;
|
||||
*/
|
||||
JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_version
|
||||
(JNIEnv *, jobject);
|
||||
|
||||
/*
|
||||
* Class: com_zerotierone_sdk_Node
|
||||
* Method: peers
|
||||
* Signature: (J)Ljava/util/ArrayList;
|
||||
*/
|
||||
JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_peers
|
||||
(JNIEnv *, jobject, jlong);
|
||||
|
||||
/*
|
||||
* Class: com_zerotierone_sdk_Node
|
||||
* Method: networks
|
||||
* Signature: (J)Ljava/util/ArrayList;
|
||||
*/
|
||||
JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_networks
|
||||
(JNIEnv *, jobject, jlong);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@ -30,6 +30,7 @@ package com.zerotierone.sdk;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.lang.Long;
|
||||
import java.net.InetAddress;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class Node {
|
||||
static {
|
||||
@ -157,13 +158,17 @@ public class Node {
|
||||
return status(nodeId);
|
||||
}
|
||||
|
||||
// TODO: ZT1_Node_peers
|
||||
public ArrayList<Peer> peers() {
|
||||
return peers(nodeId);
|
||||
}
|
||||
|
||||
public VirtualNetworkConfig networkConfig(long nwid) {
|
||||
return networkConfig(nodeId, nwid);
|
||||
}
|
||||
|
||||
// TODO: ZT1_Node_networks
|
||||
public ArrayList<VirtualNetworkConfig> networks() {
|
||||
return networks(nodeId);
|
||||
}
|
||||
|
||||
public Version getVersion() {
|
||||
return version();
|
||||
@ -220,13 +225,11 @@ public class Node {
|
||||
|
||||
private native NodeStatus status(long nodeId);
|
||||
|
||||
// TODO: ZT1_Node_peers
|
||||
|
||||
private native VirtualNetworkConfig networkConfig(long nodeId, long nwid);
|
||||
|
||||
// TODO: ZT1_Node_networks
|
||||
|
||||
private native Version version();
|
||||
|
||||
private native ArrayList<Peer> peers(long nodeId);
|
||||
|
||||
private native ArrayList<VirtualNetworkConfig> networks(long nodeId);
|
||||
}
|
80
java/src/com/zerotierone/sdk/Peer.java
Normal file
80
java/src/com/zerotierone/sdk/Peer.java
Normal file
@ -0,0 +1,80 @@
|
||||
/*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* --
|
||||
*
|
||||
* ZeroTier may be used and distributed under the terms of the GPLv3, which
|
||||
* are available at: http://www.gnu.org/licenses/gpl-3.0.html
|
||||
*
|
||||
* If you would like to embed ZeroTier into a commercial application or
|
||||
* redistribute it in a modified binary form, please contact ZeroTier Networks
|
||||
* LLC. Start here: http://www.zerotier.com/
|
||||
*/
|
||||
|
||||
package com.zerotierone.sdk;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class Peer {
|
||||
private long address;
|
||||
private long lastUnicastFrame;
|
||||
private long lastMulticastFrame;
|
||||
private int versionMajor;
|
||||
private int versionMinor;
|
||||
private int versionRev;
|
||||
private int latency;
|
||||
private PeerRole role;
|
||||
private ArrayList<PhysicalPeerPath> paths;
|
||||
|
||||
private Peer() {}
|
||||
|
||||
public final long address() {
|
||||
return address;
|
||||
}
|
||||
|
||||
public final long lastUnicastFrame() {
|
||||
return lastUnicastFrame;
|
||||
}
|
||||
|
||||
public final long lastMulticastFrame() {
|
||||
return lastMulticastFrame;
|
||||
}
|
||||
|
||||
public final int versionMajor() {
|
||||
return versionMajor;
|
||||
}
|
||||
|
||||
public final int versionMinor() {
|
||||
return versionMinor;
|
||||
}
|
||||
|
||||
public final int versionRev() {
|
||||
return versionRev;
|
||||
}
|
||||
|
||||
public final int latency() {
|
||||
return latency;
|
||||
}
|
||||
|
||||
public final PeerRole role() {
|
||||
return role;
|
||||
}
|
||||
|
||||
public final ArrayList<PhysicalPeerPath> paths() {
|
||||
return paths;
|
||||
}
|
||||
}
|
34
java/src/com/zerotierone/sdk/PeerRole.java
Normal file
34
java/src/com/zerotierone/sdk/PeerRole.java
Normal file
@ -0,0 +1,34 @@
|
||||
/*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* --
|
||||
*
|
||||
* ZeroTier may be used and distributed under the terms of the GPLv3, which
|
||||
* are available at: http://www.gnu.org/licenses/gpl-3.0.html
|
||||
*
|
||||
* If you would like to embed ZeroTier into a commercial application or
|
||||
* redistribute it in a modified binary form, please contact ZeroTier Networks
|
||||
* LLC. Start here: http://www.zerotier.com/
|
||||
*/
|
||||
|
||||
package com.zerotierone.sdk;
|
||||
|
||||
public enum PeerRole {
|
||||
PEER_ROLE_LEAF,
|
||||
PEER_ROLE_HUB,
|
||||
PEER_ROLE_SUPERNODE
|
||||
}
|
65
java/src/com/zerotierone/sdk/PhysicalPeerPath.java
Normal file
65
java/src/com/zerotierone/sdk/PhysicalPeerPath.java
Normal file
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* --
|
||||
*
|
||||
* ZeroTier may be used and distributed under the terms of the GPLv3, which
|
||||
* are available at: http://www.gnu.org/licenses/gpl-3.0.html
|
||||
*
|
||||
* If you would like to embed ZeroTier into a commercial application or
|
||||
* redistribute it in a modified binary form, please contact ZeroTier Networks
|
||||
* LLC. Start here: http://www.zerotier.com/
|
||||
*/
|
||||
|
||||
package com.zerotierone.sdk;
|
||||
|
||||
import java.net.InetAddress;
|
||||
|
||||
public class PhysicalPeerPath {
|
||||
private InetAddress address;
|
||||
private long lastSend;
|
||||
private long lastReceive;
|
||||
private boolean fixed;
|
||||
private boolean active;
|
||||
private boolean preferred;
|
||||
|
||||
private PhysicalPeerPath() {}
|
||||
|
||||
public final InetAddress address() {
|
||||
return address;
|
||||
}
|
||||
|
||||
public final long lastSend() {
|
||||
return lastSend;
|
||||
}
|
||||
|
||||
public final long lastReceive() {
|
||||
return lastReceive;
|
||||
}
|
||||
|
||||
public final boolean isFixed() {
|
||||
return fixed;
|
||||
}
|
||||
|
||||
public final boolean isActive() {
|
||||
return active;
|
||||
}
|
||||
|
||||
public final boolean isPreferred() {
|
||||
return preferred;
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user