Add WIP Java language bindings
This commit is contained in:
194
src/bindings/java/ZeroTierNode.java
Normal file
194
src/bindings/java/ZeroTierNode.java
Normal file
@@ -0,0 +1,194 @@
|
||||
/*
|
||||
* Copyright (c)2013-2021 ZeroTier, Inc.
|
||||
*
|
||||
* Use of this software is governed by the Business Source License included
|
||||
* in the LICENSE.TXT file in the project's root directory.
|
||||
*
|
||||
* Change Date: 2026-01-01
|
||||
*
|
||||
* On the date above, in accordance with the Business Source License, use
|
||||
* of this software will be governed by version 2.0 of the Apache License.
|
||||
*/
|
||||
/****/
|
||||
|
||||
package com.zerotier.sdk;
|
||||
|
||||
import com.zerotier.sdk.*;
|
||||
|
||||
/**
|
||||
* Class that provides a control interface for nodes and networks by
|
||||
* wrapping the ZeroTierNative class.
|
||||
*/
|
||||
public class ZeroTierNode {
|
||||
/**
|
||||
* Start the ZeroTier node
|
||||
*
|
||||
* @return Standard
|
||||
*/
|
||||
public int start()
|
||||
{
|
||||
return ZeroTierNative.zts_node_start();
|
||||
}
|
||||
|
||||
/**
|
||||
* Stop the ZeroTier node
|
||||
*
|
||||
* @return return
|
||||
*/
|
||||
public int stop()
|
||||
{
|
||||
return ZeroTierNative.zts_node_stop();
|
||||
}
|
||||
|
||||
/**
|
||||
* (Optional) Instruct ZeroTier to read and write identities and cache from a
|
||||
* storage location. Note that this is an initialization method that should
|
||||
* be called before {@code start()}.
|
||||
*
|
||||
* @param storagePath Where to read and write files
|
||||
*
|
||||
* @return return
|
||||
*/
|
||||
public int initFromStorage(String storagePath)
|
||||
{
|
||||
return ZeroTierNative.zts_init_from_storage(storagePath);
|
||||
}
|
||||
|
||||
/**
|
||||
* (Optional) Whether caching of peer address information to storage is allowed. This
|
||||
* is true by default if {@code initFromStorage()} is used. Note that this is an
|
||||
* initialization method that can only be called before {@code start()}.
|
||||
*
|
||||
* @param allowed Whether caching or storage of this item is allowed
|
||||
*
|
||||
* @return return
|
||||
*/
|
||||
public int initAllowPeerCache(boolean allowed)
|
||||
{
|
||||
return ZeroTierNative.zts_init_allow_peer_cache(allowed ? 1 : 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* (Optional) Whether caching of network configuration data to storage is allowed. This
|
||||
* is true by default if {@code initFromStorage()} is used. Note that this is an
|
||||
* initialization method that can only be called before {@code start()}.
|
||||
*
|
||||
* @param allowed Whether caching or storage of this item is allowed
|
||||
*
|
||||
* @return return
|
||||
*/
|
||||
public int initAllowNetworkCache(boolean allowed)
|
||||
{
|
||||
return ZeroTierNative.zts_init_allow_net_cache(allowed ? 1 : 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* (Optional) Whether caching of identity key pairs to storage is allowed. This
|
||||
* is true by default if {@code initFromStorage()} is used. Note that this is an
|
||||
* initialization method that can only be called before {@code start()}.
|
||||
*
|
||||
* @param allowed Whether caching or storage of this item is allowed
|
||||
*
|
||||
* @return return
|
||||
*/
|
||||
public int initAllowIdCache(boolean allowed)
|
||||
{
|
||||
return ZeroTierNative.zts_init_allow_id_cache(allowed ? 1 : 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* (Optional) Whether caching of root topology to storage is allowed. This
|
||||
* is true by default if {@code initFromStorage()} is used. Note that this is an
|
||||
* initialization method that can only be called before {@code start()}.
|
||||
*
|
||||
* @param allowed Whether caching or storage of this item is allowed
|
||||
*
|
||||
* @return return
|
||||
*/
|
||||
public int initAllowRootsCache(boolean allowed)
|
||||
{
|
||||
return ZeroTierNative.zts_init_allow_roots_cache(allowed ? 1 : 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* (Optional) Set the ZeroTier service port. Note that this is an
|
||||
* initialization method that can only be called before {@code start()}.
|
||||
*
|
||||
* @param port Port number
|
||||
*
|
||||
* @return return
|
||||
*/
|
||||
public int initSetPort(short port)
|
||||
{
|
||||
return ZeroTierNative.zts_init_set_port(port);
|
||||
}
|
||||
|
||||
/**
|
||||
* (Optional) Set the event handler function. Note that this is an
|
||||
* initialization method that can only be called before {@code start()}.
|
||||
*
|
||||
* @param handler Function to handle internal ZeroTier events
|
||||
*
|
||||
* @return return
|
||||
*/
|
||||
public int initSetEventHandler(ZeroTierEventListener handler)
|
||||
{
|
||||
return ZeroTierNative.zts_init_set_event_handler(handler);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return whether the ZeroTier node is currently online (able to reach a root)
|
||||
*
|
||||
* @return return
|
||||
*/
|
||||
public boolean isOnline()
|
||||
{
|
||||
return ZeroTierNative.zts_node_is_online() == 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Join a network
|
||||
*
|
||||
* @param networkId Network to join
|
||||
*
|
||||
* @return return
|
||||
*/
|
||||
public int join(long networkId)
|
||||
{
|
||||
return ZeroTierNative.zts_net_join(networkId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Leave a network
|
||||
*
|
||||
* @param networkId Network to leave
|
||||
*
|
||||
* @return return
|
||||
*/
|
||||
public int leave(long networkId)
|
||||
{
|
||||
return ZeroTierNative.zts_net_leave(networkId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return whether the given network is ready to process traffic
|
||||
*
|
||||
* @param networkId Network to test
|
||||
*
|
||||
* @return return
|
||||
*/
|
||||
public boolean isNetworkTransportReady(long networkId)
|
||||
{
|
||||
return ZeroTierNative.zts_net_transport_is_ready(networkId) == 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the identity of this node (public key)
|
||||
*
|
||||
* @return 64-bit integer representing the 10-digit hexadecimal node ID
|
||||
*/
|
||||
public long getId()
|
||||
{
|
||||
return ZeroTierNative.zts_node_get_id();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user