All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.hycube.pastry.core.PastryRoutingTable Maven / Gradle / Ivy

Go to download

HyCube is a distributed hash table based on a hierarchical hypercube geometry, employing a novel variable metric adopting the Steinhaus transform.

There is a newer version: 1.0.5
Show newest version
package net.hycube.pastry.core;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.locks.ReentrantReadWriteLock;

import net.hycube.core.RoutingTable;
import net.hycube.core.RoutingTableEntry;

public interface PastryRoutingTable extends RoutingTable {

	/**
	 * @return the routingTable
	 */
	public List[][] getRoutingTable();

	/**
	 * @param routingTable the routingTable to set
	 */
	public void setRoutingTable(List[][] routingTable);

	/**
	 * @return the secRoutingTable
	 */
	public List[][] getSecRoutingTable();

	/**
	 * @param secRoutingTable the secRoutingTable to set
	 */
	public void setSecRoutingTable(List[][] secRoutingTable);

	/**
	 * @return the leafSet
	 */
	public List getLeafSet();

	/**
	 * @param leafSet the leafSet to set
	 */
	public void setLeafSet(List leafSet);

	/**
	 * @return the lsMap
	 */
	public HashMap getLsMap();

	/**
	 * @param lsMap the lsMap to set
	 */
	public void setLsMap(HashMap lsMap);

	/**
	 * @return the rtMap
	 */
	public HashMap getRtMap();

	/**
	 * @param rtMap the rtMap to set
	 */
	public void setRtMap(HashMap rtMap);

	/**
	 * @return the secRtMap
	 */
	public HashMap getSecRtMap();

	/**
	 * @param secRtMap the secRtMap to set
	 */
	public void setSecRtMap(HashMap secRtMap);

	/**
	 * @return the rteMaps
	 */
	public List> getRteMaps();

	/**
	 * @param rteMaps the rteMaps to set
	 */
	public void setRteMaps(List> rteMaps);

	public ReentrantReadWriteLock getLsLock();

	public ReentrantReadWriteLock getRtLock();

	public ReentrantReadWriteLock getSecRtLock();

	public int getDimensions();

	public int getDigitsCount();

	public int getLSSize();

	public int getRoutingTableSlotSize();

	public boolean isUseSecureRouting();
	
	public void lockRoutingTableForRead();

	public void unlockRoutingTableForRead();

	public void lockRoutingTableForWrite();

	public void unlockRoutingTableForWrite();

	public int getNeighborsCount();

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy