Skip to content
Snippets Groups Projects
Commit 019c7717 authored by ivan.rigo's avatar ivan.rigo
Browse files

Final with showRes

parent 30a6db16
No related branches found
No related tags found
No related merge requests found
......@@ -69,6 +69,29 @@ Représente la ressource cherché
##### Retour
Renvoie OK si tout se passe bien. La requête n'est traité qu'une fois et tout appel successive avec le même msgID renvoie OK sans exécuter le reste de la requête. Vérifie lors de la première requête s'il possède la ressource et l'envoie à son transmitter. Broadcast ensuite la requête avec un TTL décrémenté à ses voisins ormis transmitter
#### Affiché le résultat de la recherche (GET)
http://localhost:NodePort/showRes
A utilisé après avoir utilisé la route précédente
##### Retour
Affiche dans le terminal les noeuds contenant la ressource recherché. Un message différent est insèrer si le noeud initial possède aussi la ressource
### Côté noeud
Ces fonctions sont utilisé entre les noeuds et ne doivent pas être appelé par l'user
#### Envoyé la recherche au voisins (GET)
http://localhost:NodePort/req/transmitter/ttl/msgid/ressource
##### transmiter
Correspond à l'id du noeud ayant envoyé la requête
##### ttl
Correspond au Time To Live, il est décremente avant de l'envoyé aux voisins autre que transmitter
##### msgId
Correspond à l'id de la recherche. Elle change à chaque fois que la route initReq est appelé
##### ressource
Représente la ressource cherché
##### Retour
Renvoie OK si tout se passe bien. La requête n'est traité qu'une fois et tout appel successive avec le même msgID renvoie OK sans exécuter le reste de la requête. Vérifie lors de la première requête s'il possède la ressource et l'envoie à son transmitter. Broadcast ensuite la requête avec un TTL décrémenté à ses voisins ormis transmitter
#### Découverte de la ressource (GET)
http://localhost:NodePort/foundReq/:finder/:ressource
......
......@@ -31,6 +31,7 @@ var transmitter int
var msgId = 0
var err error
var assignTransM sync.Mutex
var endResult string
func getRequest(urlTxt string) {
resp, err := http.Get(urlTxt)
......@@ -38,13 +39,19 @@ func getRequest(urlTxt string) {
fmt.Println(resp.Status)
}
func showReq(c *gin.Context) {
fmt.Println(endResult)
c.IndentedJSON(http.StatusOK, endResult)
}
func initReq(c *gin.Context) {
msgId = rand.Intn(100) + data.ID
transmitter = -1
fmt.Println("\n Start of new research ")
endResult = ""
for _, x := range storage {
if x == c.Param("ressource") {
fmt.Println("\n Ressource exist in Client ")
fmt.Println("\nRessource exist in Client")
endResult = "Found ressource in node client "
break
}
}
......@@ -96,7 +103,14 @@ func receiveReq(c *gin.Context) {
//Called by child when ressource is find
func foundReq(c *gin.Context) {
if transmitter == -1 {
fmt.Println("\n Instance of " + c.Param("ressource") + " found on port " + c.Param("finder"))
if endResult == "" {
endResult = "Instance of " + c.Param("ressource") + " found on port " + c.Param("finder") + " "
fmt.Println(endResult)
} else {
endResult += "Instance of " + c.Param("ressource") + " found on port " + c.Param("finder") + " "
fmt.Println(endResult)
}
fmt.Println(endResult)
} else {
getRequest("http://" + data.Neighbors[transmitter].Address + "/foundReq/" + c.Param("finder") + "/" + c.Param("ressource"))
}
......@@ -141,6 +155,7 @@ func main() {
router.GET("/initReq/:ttl/:ressource", initReq)
router.GET("/req/:transmitter/:ttl/:msgId/:ressource", receiveReq)
router.GET("/foundReq/:finder/:ressource", foundReq)
router.GET("/showRes", showReq)
router.Run(data.Address)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment