Skip to content
Snippets Groups Projects
launch-all-agents.go 1.03 KiB
Newer Older
Antoine Kryus's avatar
Antoine Kryus committed
package main

import (
	"fmt"
	"log"
	"math/rand"

	"gitlab.utc.fr/lagruesy/ia04/demos/restagentdemo/restclientagent"
	"gitlab.utc.fr/lagruesy/ia04/demos/restagentdemo/restserveragent"

// "ia04/comsoc"
// "ia04/agt"
Antoine Kryus's avatar
Antoine Kryus committed
)

func main() {
	const n = 100
	const url1 = ":8080"
	const url2 = "http://localhost:8080"
	ops := [...]string{"+", "-", "*"}

	clAgts := make([]restclientagent.RestClientAgent, 0, n)
	servAgt := restserveragent.NewRestServerAgent(url1)

	log.Println("démarrage du serveur...")
	go servAgt.Start()

	log.Println("démarrage des clients...")
	 //sample agents
Antoine Kryus's avatar
Antoine Kryus committed
	for i := 0; i < n; i++ {
		id := fmt.Sprintf("id%02d", i)
		op := ops[rand.Intn(3)]
		op1 := rand.Intn(100)
		op2 := rand.Intn(100)
		agt := restclientagent.NewRestClientAgent(id, url2, op, op1, op2)
		clAgts = append(clAgts, *agt)
	}

Antoine Kryus's avatar
Antoine Kryus committed
	for _, agt := range clAgts {
		// attention, obligation de passer par cette lambda pour faire capturer la valeur de l'itération par la goroutine
		func(agt restclientagent.RestClientAgent) {
			go agt.Start()
		}(agt)
	}

	fmt.Scanln()
}