mirror of
https://github.com/ChronosX88/KademliaDHT.git
synced 2024-11-22 02:02:21 +00:00
Storage Entry Usage
- Now we manage storage entries directly from the KadNode - rather than creating them all over the place
This commit is contained in:
parent
7b95d03d96
commit
24abfe3d2a
@ -289,7 +289,23 @@ public class KademliaNode
|
|||||||
*/
|
*/
|
||||||
public int put(KadContent content) throws IOException
|
public int put(KadContent content) throws IOException
|
||||||
{
|
{
|
||||||
StoreOperation sop = new StoreOperation(this.server, this, content, this.dht, this.config);
|
return this.put(new StorageEntry(content));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Stores the specified value under the given key
|
||||||
|
* This value is stored on K nodes on the network, or all nodes if there are > K total nodes in the network
|
||||||
|
*
|
||||||
|
* @param entry The StorageEntry with the content to put onto the DHT
|
||||||
|
*
|
||||||
|
* @return Integer How many nodes the content was stored on
|
||||||
|
*
|
||||||
|
* @throws java.io.IOException
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private int put(StorageEntry entry) throws IOException
|
||||||
|
{
|
||||||
|
StoreOperation sop = new StoreOperation(this.server, this, entry, this.dht, this.config);
|
||||||
sop.execute();
|
sop.execute();
|
||||||
|
|
||||||
/* Return how many nodes the content was stored on */
|
/* Return how many nodes the content was stored on */
|
||||||
@ -305,7 +321,7 @@ public class KademliaNode
|
|||||||
*/
|
*/
|
||||||
public void putLocally(KadContent content) throws IOException
|
public void putLocally(KadContent content) throws IOException
|
||||||
{
|
{
|
||||||
this.dht.store(content);
|
this.dht.store(new StorageEntry(content));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -23,22 +23,22 @@ public class StoreOperation implements Operation
|
|||||||
|
|
||||||
private final KadServer server;
|
private final KadServer server;
|
||||||
private final KademliaNode localNode;
|
private final KademliaNode localNode;
|
||||||
private final KadContent content;
|
private final StorageEntry storageEntry;
|
||||||
private final DHT localDht;
|
private final DHT localDht;
|
||||||
private final KadConfiguration config;
|
private final KadConfiguration config;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param server
|
* @param server
|
||||||
* @param localNode
|
* @param localNode
|
||||||
* @param content The content to be stored on the DHT
|
* @param storageEntry The content to be stored on the DHT
|
||||||
* @param localDht The local DHT
|
* @param localDht The local DHT
|
||||||
* @param config
|
* @param config
|
||||||
*/
|
*/
|
||||||
public StoreOperation(KadServer server, KademliaNode localNode, KadContent content, DHT localDht, KadConfiguration config)
|
public StoreOperation(KadServer server, KademliaNode localNode, StorageEntry storageEntry, DHT localDht, KadConfiguration config)
|
||||||
{
|
{
|
||||||
this.server = server;
|
this.server = server;
|
||||||
this.localNode = localNode;
|
this.localNode = localNode;
|
||||||
this.content = content;
|
this.storageEntry = storageEntry;
|
||||||
this.localDht = localDht;
|
this.localDht = localDht;
|
||||||
this.config = config;
|
this.config = config;
|
||||||
}
|
}
|
||||||
@ -47,20 +47,20 @@ public class StoreOperation implements Operation
|
|||||||
public synchronized void execute() throws IOException
|
public synchronized void execute() throws IOException
|
||||||
{
|
{
|
||||||
/* Get the nodes on which we need to store the content */
|
/* Get the nodes on which we need to store the content */
|
||||||
NodeLookupOperation ndlo = new NodeLookupOperation(this.server, this.localNode, this.content.getKey(), this.config);
|
NodeLookupOperation ndlo = new NodeLookupOperation(this.server, this.localNode, this.storageEntry.getContentMetadata().getKey(), this.config);
|
||||||
ndlo.execute();
|
ndlo.execute();
|
||||||
List<Node> nodes = ndlo.getClosestNodes();
|
List<Node> nodes = ndlo.getClosestNodes();
|
||||||
|
|
||||||
/* Create the message */
|
/* Create the message */
|
||||||
Message msg = new StoreContentMessage(this.localNode.getNode(), new StorageEntry(this.content));
|
Message msg = new StoreContentMessage(this.localNode.getNode(), this.storageEntry);
|
||||||
|
|
||||||
/*Store the message on all of the K-Nodes*/
|
/*Store the message on all of the K-Nodes*/
|
||||||
for (Node n : nodes)
|
for (Node n : nodes)
|
||||||
{
|
{
|
||||||
if (n.equals(this.localNode))
|
if (n.equals(this.localNode.getNode()))
|
||||||
{
|
{
|
||||||
/* Store the content locally */
|
/* Store the content locally */
|
||||||
this.localDht.store(content);
|
this.localDht.store(this.storageEntry);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user