begin implementing peer data types
This commit is contained in:
parent
f3ddaffe59
commit
879b7aa742
5 changed files with 97 additions and 0 deletions
|
|
@ -0,0 +1,52 @@
|
||||||
|
package com.mykola2312.retracker.tracker;
|
||||||
|
|
||||||
|
public enum AnnounceEvent {
|
||||||
|
NONE(0),
|
||||||
|
STARTED(1),
|
||||||
|
STOPPED(2),
|
||||||
|
COMPLETED(3);
|
||||||
|
|
||||||
|
private int value;
|
||||||
|
|
||||||
|
AnnounceEvent() {
|
||||||
|
this.value = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
AnnounceEvent(int value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static AnnounceEvent fromString(String value) {
|
||||||
|
switch (value) {
|
||||||
|
case "none": return AnnounceEvent.NONE;
|
||||||
|
case "started": return AnnounceEvent.STARTED;
|
||||||
|
case "stopped": return AnnounceEvent.STOPPED;
|
||||||
|
case "completed": return AnnounceEvent.COMPLETED;
|
||||||
|
default: return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static AnnounceEvent fromInteger(int value) {
|
||||||
|
switch (value) {
|
||||||
|
case 0: return AnnounceEvent.NONE;
|
||||||
|
case 1: return AnnounceEvent.STARTED;
|
||||||
|
case 2: return AnnounceEvent.STOPPED;
|
||||||
|
case 3: return AnnounceEvent.COMPLETED;
|
||||||
|
default: return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
switch (this) {
|
||||||
|
case STARTED: return "started";
|
||||||
|
case STOPPED: return "stopped";
|
||||||
|
case COMPLETED: return "completed";
|
||||||
|
default: return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int toInteger() {
|
||||||
|
return this.value;
|
||||||
|
}
|
||||||
|
}
|
||||||
8
src/main/java/com/mykola2312/retracker/tracker/Peer.java
Normal file
8
src/main/java/com/mykola2312/retracker/tracker/Peer.java
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
package com.mykola2312.retracker.tracker;
|
||||||
|
|
||||||
|
import java.net.InetSocketAddress;
|
||||||
|
|
||||||
|
public class Peer {
|
||||||
|
private PeerType type;
|
||||||
|
private InetSocketAddress address;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
package com.mykola2312.retracker.tracker;
|
||||||
|
|
||||||
|
/* This data is available only from local announces,
|
||||||
|
* It shall be used for re-announces
|
||||||
|
*/
|
||||||
|
public class PeerLocalData {
|
||||||
|
private long downloaded = 0; // 8 bytes integer
|
||||||
|
private long left = 0; // 8 bytes integer
|
||||||
|
private long uploaded = 0; // 8 bytes integer
|
||||||
|
private int event = 0; // 4 bytes integer, enum
|
||||||
|
private long key = 0; // 4 bytes integer
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
package com.mykola2312.retracker.tracker;
|
||||||
|
|
||||||
|
public enum PeerType {
|
||||||
|
LOCAL,
|
||||||
|
REMOTE
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
package com.mykola2312.retracker.tracker;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertNotEquals;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
public class AnnounceEventTest {
|
||||||
|
@Test
|
||||||
|
public void testEventEqual() {
|
||||||
|
assertEquals(AnnounceEvent.NONE, AnnounceEvent.NONE);
|
||||||
|
assertEquals(AnnounceEvent.STARTED, AnnounceEvent.STARTED);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testEventNotEqual() {
|
||||||
|
assertNotEquals(AnnounceEvent.STOPPED, AnnounceEvent.STARTED);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Reference in a new issue