mirror of
https://github.com/ChronosX88/KademliaDHT.git
synced 2024-11-22 02:02:21 +00:00
Continuing work on message sending
This commit is contained in:
parent
faef3d03ec
commit
995da2cffb
@ -35,7 +35,7 @@ public class KadServer
|
|||||||
private final HashMap<Integer, Receiver> receivers;
|
private final HashMap<Integer, Receiver> receivers;
|
||||||
private final Timer timer; // Schedule future tasks
|
private final Timer timer; // Schedule future tasks
|
||||||
private final HashMap<Integer, TimerTask> tasks; // Keep track of scheduled tasks
|
private final HashMap<Integer, TimerTask> tasks; // Keep track of scheduled tasks
|
||||||
|
|
||||||
private final Node localNode;
|
private final Node localNode;
|
||||||
|
|
||||||
/* Factories */
|
/* Factories */
|
||||||
@ -53,7 +53,7 @@ public class KadServer
|
|||||||
{
|
{
|
||||||
this.udpPort = udpPort;
|
this.udpPort = udpPort;
|
||||||
this.socket = new DatagramSocket(udpPort);
|
this.socket = new DatagramSocket(udpPort);
|
||||||
|
|
||||||
this.localNode = localNode;
|
this.localNode = localNode;
|
||||||
|
|
||||||
this.messageFactory = mFactory;
|
this.messageFactory = mFactory;
|
||||||
@ -119,6 +119,10 @@ public class KadServer
|
|||||||
private void sendMessage(Node to, Message msg, int comm) throws IOException
|
private void sendMessage(Node to, Message msg, int comm) throws IOException
|
||||||
{
|
{
|
||||||
|
|
||||||
|
final Class<?> clazz = msg.getClass();
|
||||||
|
System.out.println(clazz.getSimpleName());
|
||||||
|
System.out.println(clazz);
|
||||||
|
|
||||||
|
|
||||||
/* Setup the message for transmission */
|
/* Setup the message for transmission */
|
||||||
ByteArrayOutputStream bout = new ByteArrayOutputStream();
|
ByteArrayOutputStream bout = new ByteArrayOutputStream();
|
||||||
|
@ -4,7 +4,7 @@ import java.io.IOException;
|
|||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
import java.util.Timer;
|
import java.util.Timer;
|
||||||
import java.util.TimerTask;
|
import java.util.TimerTask;
|
||||||
import kademlia.dht.DHTContent;
|
import kademlia.dht.KadContent;
|
||||||
import kademlia.exceptions.RoutingException;
|
import kademlia.exceptions.RoutingException;
|
||||||
import kademlia.message.MessageFactory;
|
import kademlia.message.MessageFactory;
|
||||||
import kademlia.node.Node;
|
import kademlia.node.Node;
|
||||||
@ -125,7 +125,7 @@ public class Kademlia
|
|||||||
* @throws java.io.IOException
|
* @throws java.io.IOException
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public int put(DHTContent content) throws IOException
|
public int put(KadContent content) throws IOException
|
||||||
{
|
{
|
||||||
return (int) new StoreOperation(server, localNode, content).execute();
|
return (int) new StoreOperation(server, localNode, content).execute();
|
||||||
}
|
}
|
||||||
@ -139,7 +139,7 @@ public class Kademlia
|
|||||||
*
|
*
|
||||||
* @return DHTContent The content
|
* @return DHTContent The content
|
||||||
*/
|
*/
|
||||||
public DHTContent get(GetParameter param, Class c)
|
public KadContent get(GetParameter param, Class c)
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@ import kademlia.node.NodeId;
|
|||||||
* @author Joshua Kissoon
|
* @author Joshua Kissoon
|
||||||
* @since 20140224
|
* @since 20140224
|
||||||
*/
|
*/
|
||||||
public interface DHTContent
|
public interface KadContent
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
@ -2,7 +2,7 @@ package kademlia.message;
|
|||||||
|
|
||||||
import java.io.DataInput;
|
import java.io.DataInput;
|
||||||
import java.io.DataOutput;
|
import java.io.DataOutput;
|
||||||
import kademlia.dht.DHTContent;
|
import kademlia.dht.KadContent;
|
||||||
import kademlia.node.Node;
|
import kademlia.node.Node;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -15,7 +15,7 @@ public class ContentStoreMessage implements Message
|
|||||||
{
|
{
|
||||||
|
|
||||||
private final Node origin;
|
private final Node origin;
|
||||||
private final DHTContent content;
|
private final KadContent content;
|
||||||
|
|
||||||
public final static byte CODE = 0x23;
|
public final static byte CODE = 0x23;
|
||||||
|
|
||||||
@ -23,7 +23,7 @@ public class ContentStoreMessage implements Message
|
|||||||
* @param origin Where did this content come from - it'll always be the local node
|
* @param origin Where did this content come from - it'll always be the local node
|
||||||
* @param content The Content to send
|
* @param content The Content to send
|
||||||
*/
|
*/
|
||||||
public ContentStoreMessage(Node origin, DHTContent content)
|
public ContentStoreMessage(Node origin, KadContent content)
|
||||||
{
|
{
|
||||||
this.origin = origin;
|
this.origin = origin;
|
||||||
this.content = content;
|
this.content = content;
|
||||||
@ -52,7 +52,7 @@ public class ContentStoreMessage implements Message
|
|||||||
return this.origin;
|
return this.origin;
|
||||||
}
|
}
|
||||||
|
|
||||||
public DHTContent getContent()
|
public KadContent getContent()
|
||||||
{
|
{
|
||||||
return this.content;
|
return this.content;
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@ package kademlia.operation;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import kademlia.core.KadServer;
|
import kademlia.core.KadServer;
|
||||||
import kademlia.dht.DHTContent;
|
import kademlia.dht.KadContent;
|
||||||
import kademlia.node.Node;
|
import kademlia.node.Node;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -17,14 +17,14 @@ public class StoreOperation implements Operation
|
|||||||
|
|
||||||
private final KadServer server;
|
private final KadServer server;
|
||||||
private final Node localNode;
|
private final Node localNode;
|
||||||
private final DHTContent content;
|
private final KadContent content;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param server
|
* @param server
|
||||||
* @param localNode
|
* @param localNode
|
||||||
* @param content The content to be stored on the DHT
|
* @param content The content to be stored on the DHT
|
||||||
*/
|
*/
|
||||||
public StoreOperation(KadServer server, Node localNode, DHTContent content)
|
public StoreOperation(KadServer server, Node localNode, KadContent content)
|
||||||
{
|
{
|
||||||
this.server = server;
|
this.server = server;
|
||||||
this.localNode = localNode;
|
this.localNode = localNode;
|
||||||
@ -36,6 +36,9 @@ public class StoreOperation implements Operation
|
|||||||
{
|
{
|
||||||
/* Get the nodes on which we need to store the content */
|
/* Get the nodes on which we need to store the content */
|
||||||
ArrayList<Node> nodes = new NodeLookupOperation(this.server, this.localNode, this.content.getKey()).execute();
|
ArrayList<Node> nodes = new NodeLookupOperation(this.server, this.localNode, this.content.getKey()).execute();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
System.out.println("Nodes to put content on: " + nodes);
|
System.out.println("Nodes to put content on: " + nodes);
|
||||||
|
|
||||||
/* Return how many nodes the content was stored on */
|
/* Return how many nodes the content was stored on */
|
||||||
|
12
src/kademlia/serializer/JsonSerializer.java
Normal file
12
src/kademlia/serializer/JsonSerializer.java
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
package kademlia.serializer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A KadContentSerializer that serializes content to JSON format
|
||||||
|
*
|
||||||
|
* @author Joshua Kissoon
|
||||||
|
* @since 20140225
|
||||||
|
*/
|
||||||
|
public class JsonSerializer implements KadContentSerializer
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
34
src/kademlia/serializer/KadContentSerializer.java
Normal file
34
src/kademlia/serializer/KadContentSerializer.java
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
package kademlia.serializer;
|
||||||
|
|
||||||
|
import java.io.DataInput;
|
||||||
|
import java.io.DataOutput;
|
||||||
|
import kademlia.dht.KadContent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A Serializer is used to transform data to and from a specified form.
|
||||||
|
*
|
||||||
|
* Here we define the structure of any Serializer used in Kademlia
|
||||||
|
*
|
||||||
|
* @author Joshua Kissoon
|
||||||
|
* @since 20140225
|
||||||
|
*/
|
||||||
|
public interface KadContentSerializer
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Write a KadContent to a DataOutput stream
|
||||||
|
*
|
||||||
|
* @param content The content to write
|
||||||
|
* @param out The output Stream to write to
|
||||||
|
*/
|
||||||
|
public void write(KadContent content, DataOutput out);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Read a KadContent from a DataInput Stream
|
||||||
|
*
|
||||||
|
* @param in The InputStream to read the data from
|
||||||
|
*
|
||||||
|
* @return KadContent
|
||||||
|
*/
|
||||||
|
public KadContent read(DataInput in);
|
||||||
|
}
|
@ -1,6 +1,6 @@
|
|||||||
package kademlia.tests;
|
package kademlia.tests;
|
||||||
|
|
||||||
import kademlia.dht.DHTContent;
|
import kademlia.dht.KadContent;
|
||||||
import kademlia.node.NodeId;
|
import kademlia.node.NodeId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -9,7 +9,7 @@ import kademlia.node.NodeId;
|
|||||||
* @author Joshua Kissoon
|
* @author Joshua Kissoon
|
||||||
* @since 20140224
|
* @since 20140224
|
||||||
*/
|
*/
|
||||||
public class DHTContentImpl implements DHTContent
|
public class DHTContentImpl implements KadContent
|
||||||
{
|
{
|
||||||
|
|
||||||
private final NodeId key;
|
private final NodeId key;
|
||||||
|
Loading…
Reference in New Issue
Block a user