-
Notifications
You must be signed in to change notification settings - Fork 31
/
LibTorrent.java
115 lines (97 loc) · 3.2 KB
/
LibTorrent.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
package org.libtorrent4j;
import org.libtorrent4j.swig.libtorrent;
import org.libtorrent4j.swig.libtorrent_jni;
import org.libtorrent4j.swig.stats_metric_vector;
import java.util.ArrayList;
import java.util.List;
/**
* @author gubatron
* @author aldenml
*/
public final class LibTorrent {
private LibTorrent() {
}
/**
* The version number as reported by libtorrent
*
* @return the version number
*/
public static int versionNum() {
return libtorrent.LIBTORRENT_VERSION_NUM;
}
/**
* The version string as reported by libtorrent
*
* @return the version string
*/
public static String version() {
return libtorrent.version();
}
/**
* The git revision of libtorrent the native library is using.
* <p>
* This is not the internal revision libtorrent reports, since
* that string is updated from time to time. This library can be
* using an up to date revision, this string is manually
* hardcoded in each version of libtorrent4j. See
* {@link libtorrent#LIBTORRENT_REVISION} for the libtorrent string.
*
* @return the git revision
*/
public static String revision() {
return "4b268297c4cf7beefd6d90e45e2f5c2a2284a870";
}
public static int boostVersionNum() {
return libtorrent.boost_version();
}
public static String boostVersion() {
return libtorrent.boost_lib_version();
}
public static int opensslVersionNum() {
return libtorrent.openssl_version_number();
}
public static String opensslVersion() {
return libtorrent.openssl_version_text();
}
public static String libtorrent4jVersion() {
return libtorrent_jni.libtorrent4jVersion();
}
/**
* This free function returns the list of available metrics exposed by
* libtorrent's statistics API. Each metric has a name and a *value index*.
* The value index is the index into the array in session_stats_alert where
* this metric's value can be found when the session stats is sampled (by
* calling post_session_stats()).
*
* @return the list of all metrics
*/
public static List<StatsMetric> sessionStatsMetrics() {
stats_metric_vector v = libtorrent.session_stats_metrics();
int size = (int) v.size();
ArrayList<StatsMetric> l = new ArrayList<>(size);
for (int i = 0; i < size; i++) {
l.add(new StatsMetric(v.get(i)));
}
return l;
}
/**
* given a name of a metric, this function returns the counter index of it,
* or -1 if it could not be found. The counter index is the index into the
* values array returned by session_stats_alert.
*
* @param name the name of the metric
* @return the index of the metric
*/
public static int findMetricIdx(String name) {
return libtorrent.find_metric_idx_s(name);
}
/**
* If the native library is an ARM architecture variant, returns true
* if the running platform has NEON support.
*
* @return true if the running platform has NEON support
*/
public static boolean hasArmNeonSupport() {
return libtorrent.arm_neon_support();
}
}