Class NodeKlient

java.lang.Object
  extended byNodeKlient

public class NodeKlient
extends java.lang.Object

Denne klassen skal være nodeobjektet! Klientsiden av noden!

Version:
25 feb
Author:
Morten Tvenning

Constructor Summary
NodeKlient(NodeKlient innNodeRouting)
          Konstructor med bare første routingnode Denne konstruktoren oppretter routingtable i tillegg addes første routingnode
NodeKlient(NodeKlient innNodeRouting, java.lang.String mittNavn)
          Construktor som tar i mot første routingNode og nodenavn.
NodeKlient(java.lang.String mittNavn)
          Constructor som tar inn bare ett navn.
 
Method Summary
 java.lang.String faaForsteObjekt()
          Returnerer første noden i routingTabellen
 void faaInverertIndeksTillegg(java.util.ArrayList invarray)
          Denne funksjonen lagrer enten listen til tjeneren sin eller sender den videre til den nermeste tjener.
 int getLatency()
          Denne metoden retunerer delayen denne noden har.
 java.lang.String getNavn()
          Returnerer navnet til denne noden.
 NodeKlient getPathNodeTilTjener()
           
 int getPathToTjenerLatency()
          Returnerer hvor langt det er til nermeste server.
 java.util.ArrayList getRoutingTable()
          Returnerer denne nodens routingTabell som en ArrayList
 NodeTjener getTjenerNode()
          Returnerer tjenernoden som denne noden er koblet til.
 void getTjenerPing(NodeKlient innNode, int hopstolive, int delay)
          Denne metoden sjekker om en tjener ligger nermere eller er lenger i fra.
 void goTjenerPing(int hopstolive, NodeKlient innNode, int delay)
          Sender ut en rekursiv ping om hvor nerme denne noden er en tjener.
 void leggTilIndeks(java.util.ArrayList insertList)
          Denne metoden sender videre indexlisten om dens tjener ikke er aktiv, og lagrer listen i nodeTjener om den er aktiv.
 void leggTilNabo(NodeKlient innnode)
          Legger en nabo til i routingTabellen.
 boolean nodeFinnesAlleredeIRT(NodeKlient node)
          Sjekker routingtabellen om noden allrede finnes.
 void printRTtilKonsoll()
          Skriver ut stringinnholdet for nodene i routingtabellen til konsoll.
 void printTjenerListe()
          Skriver ut nodens path til tjener og latency
 void setLatency(int delay)
          Denne metoden setter hvor mange millisekund latency det er fra denne noden.
 java.util.ArrayList sokEtter(java.lang.String sokestring, int teller)
          Metode som rekursivt søker til nermeste tjener og får svar tilbake i form av en Arrayliste med strenger.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NodeKlient

public NodeKlient(java.lang.String mittNavn)
Constructor som tar inn bare ett navn. Setter igang rutingtabellen, navn pathNodeToServer og pathNodeToServerDelay.

Parameters:
mittNavn - navnet til noden som en String

NodeKlient

public NodeKlient(NodeKlient innNodeRouting,
                  java.lang.String mittNavn)
Construktor som tar i mot første routingNode og nodenavn. Setter igang rutingtabellen, navn pathNodeToServer og pathNodeToServerDelay.

Parameters:
innNodeRouting - the first node to be added to the routingTable
mittNavn - streng som inneholder navnet til noden.

NodeKlient

public NodeKlient(NodeKlient innNodeRouting)
Konstructor med bare første routingnode Denne konstruktoren oppretter routingtable i tillegg addes første routingnode

Parameters:
innNodeRouting - the first node to be added to the routingTable
Method Detail

leggTilNabo

public void leggTilNabo(NodeKlient innnode)
Legger en nabo til i routingTabellen.


getPathNodeTilTjener

public NodeKlient getPathNodeTilTjener()

getNavn

public java.lang.String getNavn()
Returnerer navnet til denne noden.

Returns:
Navn the name of the node

faaForsteObjekt

public java.lang.String faaForsteObjekt()
Returnerer første noden i routingTabellen

Returns:
firstNode første noden i routingTabellen.

getRoutingTable

public java.util.ArrayList getRoutingTable()
Returnerer denne nodens routingTabell som en ArrayList

Returns:
routingTable routingTabellen for noden. En tom ArrayList om noden ikke har noen routingtabell.

getTjenerNode

public NodeTjener getTjenerNode()
Returnerer tjenernoden som denne noden er koblet til.

Returns:
nodeServer tjenernoden som er knyttet/assosiert med denne klienten

nodeFinnesAlleredeIRT

public boolean nodeFinnesAlleredeIRT(NodeKlient node)
Sjekker routingtabellen om noden allrede finnes.

Parameters:
node - inputnoden du vil sjekke om finnes i routingtabellen
Returns:
exists true om den finnes, false om den ikke finnes i routingtabellen.

printRTtilKonsoll

public void printRTtilKonsoll()
Skriver ut stringinnholdet for nodene i routingtabellen til konsoll.


printTjenerListe

public void printTjenerListe()
Skriver ut nodens path til tjener og latency


leggTilIndeks

public void leggTilIndeks(java.util.ArrayList insertList)
Denne metoden sender videre indexlisten om dens tjener ikke er aktiv, og lagrer listen i nodeTjener om den er aktiv.

Parameters:
insertList - ArrayList som innholder Indextermer og fil/key/lok

setLatency

public void setLatency(int delay)
Denne metoden setter hvor mange millisekund latency det er fra denne noden.

Parameters:
delay - en fiktiv verdi mellom 0 og 100 som skal representere tidsbruken ved å overføre til denne noden.

getPathToTjenerLatency

public int getPathToTjenerLatency()
Returnerer hvor langt det er til nermeste server.

Returns:
pathNodeToServerDelay. Den verdien som er lagt som minste rute til nermeste server.

getLatency

public int getLatency()
Denne metoden retunerer delayen denne noden har.

Returns:
returnerer delayen denne noden har i millisekunder (fra 1 - 100)

goTjenerPing

public void goTjenerPing(int hopstolive,
                         NodeKlient innNode,
                         int delay)
Sender ut en rekursiv ping om hvor nerme denne noden er en tjener.

Parameters:
hopstolive - hvor mange hopp som er igjen
innNode - noden som kaller denne funksjonen til denne noden
delay - hvor mye delay som allerede finnes til server.

getTjenerPing

public void getTjenerPing(NodeKlient innNode,
                          int hopstolive,
                          int delay)
Denne metoden sjekker om en tjener ligger nermere eller er lenger i fra. I "semirekursivt samarbeide med goTjenerPing"

Parameters:
innNode - noden som er nermest en tjener til en hver tid
hopstolive - hvor mange hopp en tjenerping skal vare
delay - den sammenlagte delayen fra tjener.

faaInverertIndeksTillegg

public void faaInverertIndeksTillegg(java.util.ArrayList invarray)
Denne funksjonen lagrer enten listen til tjeneren sin eller sender den videre til den nermeste tjener.

Parameters:
invarray - invertert liste med name/key/lok as first element

sokEtter

public java.util.ArrayList sokEtter(java.lang.String sokestring,
                                    int teller)
Metode som rekursivt søker til nermeste tjener og får svar tilbake i form av en Arrayliste med strenger. Om noden har aktiv tjener så søker den i basen sin (og videre til andre tjenere om det ikke er nok søketreff) leverer tilbake.

Parameters:
sokestring - strengen det skal søkes etter.
Returns:
ArrayList med søkeordene i String format