Skip to content

Commit e510bef

Browse files
committed
[refactoring] More future centric team and autoRef protocol
1 parent 7c4ead8 commit e510bef

13 files changed

+452
-346
lines changed

cmd/ssl-auto-ref-client/communication_autoRef.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@ Controller-->Controller: verify signature
99
Controller->AutoRef: ControllerReply ( ok | reject )
1010

1111
loop
12-
AutoRef->Controller: AutoRefToControllerRequest
12+
AutoRef->Controller: AutoRefToController
1313
Controller->AutoRef: ControllerReply ( ok | reject )
1414
end

cmd/ssl-auto-ref-client/main.go

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -57,39 +57,39 @@ func main() {
5757
}
5858

5959
func (c *Client) register() {
60-
controllerReply := refproto.ControllerReply{}
61-
if err := sslconn.ReceiveMessage(c.conn, &controllerReply); err != nil {
60+
reply := refproto.ControllerToAutoRef{}
61+
if err := sslconn.ReceiveMessage(c.conn, &reply); err != nil {
6262
log.Fatal("Failed receiving controller reply: ", err)
6363
}
64-
if controllerReply.NextToken == nil {
64+
if reply.GetControllerReply() == nil || reply.GetControllerReply().NextToken == nil {
6565
log.Fatal("Missing next token")
6666
}
6767

6868
registration := refproto.AutoRefRegistration{}
6969
registration.Identifier = clientIdentifier
7070
if privateKey != nil {
71-
registration.Signature = &refproto.Signature{Token: controllerReply.NextToken, Pkcs1V15: []byte{}}
71+
registration.Signature = &refproto.Signature{Token: reply.GetControllerReply().NextToken, Pkcs1V15: []byte{}}
7272
registration.Signature.Pkcs1V15 = client.Sign(privateKey, &registration)
7373
}
7474
log.Print("Sending registration")
7575
if err := sslconn.SendMessage(c.conn, &registration); err != nil {
7676
log.Fatal("Failed sending registration: ", err)
7777
}
7878
log.Print("Sent registration, waiting for reply")
79-
controllerReply = refproto.ControllerReply{}
80-
if err := sslconn.ReceiveMessage(c.conn, &controllerReply); err != nil {
79+
reply = refproto.ControllerToAutoRef{}
80+
if err := sslconn.ReceiveMessage(c.conn, &reply); err != nil {
8181
log.Fatal("Failed receiving controller reply: ", err)
8282
}
83-
if controllerReply.StatusCode == nil || *controllerReply.StatusCode != refproto.ControllerReply_OK {
83+
if reply.GetControllerReply().StatusCode == nil || *reply.GetControllerReply().StatusCode != refproto.ControllerReply_OK {
8484
reason := ""
85-
if controllerReply.Reason != nil {
86-
reason = *controllerReply.Reason
85+
if reply.GetControllerReply().Reason != nil {
86+
reason = *reply.GetControllerReply().Reason
8787
}
8888
log.Fatal("Registration rejected: ", reason)
8989
}
9090
log.Printf("Successfully registered as %v", *clientIdentifier)
91-
if controllerReply.NextToken != nil {
92-
c.token = *controllerReply.NextToken
91+
if reply.GetControllerReply().NextToken != nil {
92+
c.token = *reply.GetControllerReply().NextToken
9393
} else {
9494
c.token = ""
9595
}
@@ -106,17 +106,17 @@ func (c *Client) sendGameEvent() {
106106
*event.BallLeftFieldTouchLine.Location.X = 1
107107
*event.BallLeftFieldTouchLine.Location.Y = 4.5
108108
gameEvent := refproto.GameEvent{Event: &event}
109-
request := refproto.AutoRefToControllerRequest{GameEvent: &gameEvent}
109+
request := refproto.AutoRefToController{GameEvent: &gameEvent}
110110
c.sendRequest(&request)
111111
}
112112

113113
func (c *Client) sendAutoRefMessage(msg string) {
114114
message := refproto.AutoRefMessage{Message: &refproto.AutoRefMessage_Custom{Custom: msg}}
115-
request := refproto.AutoRefToControllerRequest{AutoRefMessage: &message}
115+
request := refproto.AutoRefToController{AutoRefMessage: &message}
116116
c.sendRequest(&request)
117117
}
118118

119-
func (c *Client) sendRequest(request *refproto.AutoRefToControllerRequest) {
119+
func (c *Client) sendRequest(request *refproto.AutoRefToController) {
120120
if privateKey != nil {
121121
request.Signature = &refproto.Signature{Token: &c.token, Pkcs1V15: []byte{}}
122122
request.Signature.Pkcs1V15 = client.Sign(privateKey, request)
@@ -129,16 +129,16 @@ func (c *Client) sendRequest(request *refproto.AutoRefToControllerRequest) {
129129
}
130130

131131
log.Print("Waiting for reply...")
132-
controllerReply := refproto.ControllerReply{}
133-
if err := sslconn.ReceiveMessage(c.conn, &controllerReply); err != nil {
132+
reply := refproto.ControllerToAutoRef{}
133+
if err := sslconn.ReceiveMessage(c.conn, &reply); err != nil {
134134
log.Fatal("Failed receiving controller reply: ", err)
135135
}
136-
log.Print("Received reply: ", controllerReply)
137-
if controllerReply.StatusCode == nil || *controllerReply.StatusCode != refproto.ControllerReply_OK {
138-
log.Fatal("Message rejected: ", *controllerReply.Reason)
136+
log.Print("Received reply: ", reply)
137+
if reply.GetControllerReply() == nil || reply.GetControllerReply().StatusCode == nil || *reply.GetControllerReply().StatusCode != refproto.ControllerReply_OK {
138+
log.Fatal("Message rejected: ", *reply.GetControllerReply().Reason)
139139
}
140-
if controllerReply.NextToken != nil {
141-
c.token = *controllerReply.NextToken
140+
if reply.GetControllerReply().NextToken != nil {
141+
c.token = *reply.GetControllerReply().NextToken
142142
} else {
143143
c.token = ""
144144
}

cmd/ssl-team-client/communication_team.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ Controller->Team: ControllerReply ( ok | reject )
1010

1111
loop
1212
alt team requests a change
13-
Team->Controller: TeamToControllerRequest
13+
Team->Controller: TeamToController
1414
Controller->Team: ControllerReply ( ok | reject )
1515
else controller requests a decision
16-
Controller->Team: ControllerToTeamRequest
17-
Team->Controller: TeamToControllerRequest
16+
Controller->Team: ControllerToTeam
17+
Team->Controller: TeamToController
1818
Controller->Team: ControllerReply ( ok | reject )
1919
end
2020
end

cmd/ssl-team-client/main.go

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -54,64 +54,64 @@ func main() {
5454
}
5555

5656
func (c *Client) register() {
57-
controllerReply := refproto.ControllerReply{}
58-
if err := sslconn.ReceiveMessage(c.conn, &controllerReply); err != nil {
57+
reply := refproto.ControllerToTeam{}
58+
if err := sslconn.ReceiveMessage(c.conn, &reply); err != nil {
5959
log.Fatal("Failed receiving controller reply: ", err)
6060
}
61-
if controllerReply.NextToken == nil {
61+
if reply.GetControllerReply().NextToken == nil {
6262
log.Fatal("Missing next token")
6363
}
6464

6565
registration := refproto.TeamRegistration{}
6666
registration.TeamName = teamName
6767
if privateKey != nil {
68-
registration.Signature = &refproto.Signature{Token: controllerReply.NextToken, Pkcs1V15: []byte{}}
68+
registration.Signature = &refproto.Signature{Token: reply.GetControllerReply().NextToken, Pkcs1V15: []byte{}}
6969
registration.Signature.Pkcs1V15 = client.Sign(privateKey, &registration)
7070
}
7171
log.Print("Sending registration")
7272
if err := sslconn.SendMessage(c.conn, &registration); err != nil {
7373
log.Fatal("Failed sending registration: ", err)
7474
}
7575
log.Print("Sent registration, waiting for reply")
76-
controllerReply = refproto.ControllerReply{}
77-
if err := sslconn.ReceiveMessage(c.conn, &controllerReply); err != nil {
76+
reply = refproto.ControllerToTeam{}
77+
if err := sslconn.ReceiveMessage(c.conn, &reply); err != nil {
7878
log.Fatal("Failed receiving controller reply: ", err)
7979
}
80-
if controllerReply.StatusCode == nil || *controllerReply.StatusCode != refproto.ControllerReply_OK {
80+
if reply.GetControllerReply().StatusCode == nil || *reply.GetControllerReply().StatusCode != refproto.ControllerReply_OK {
8181
reason := ""
82-
if controllerReply.Reason != nil {
83-
reason = *controllerReply.Reason
82+
if reply.GetControllerReply().Reason != nil {
83+
reason = *reply.GetControllerReply().Reason
8484
}
8585
log.Fatal("Registration rejected: ", reason)
8686
}
8787
log.Printf("Successfully registered as %v", *teamName)
88-
if controllerReply.NextToken != nil {
89-
c.token = *controllerReply.NextToken
88+
if reply.GetControllerReply().NextToken != nil {
89+
c.token = *reply.GetControllerReply().NextToken
9090
} else {
9191
c.token = ""
9292
}
9393
}
9494

9595
func (c *Client) sendDesiredKeeper(id int32) {
96-
message := refproto.TeamToControllerRequest_DesiredKeeper{DesiredKeeper: id}
97-
request := refproto.TeamToControllerRequest{Request: &message}
96+
message := refproto.TeamToController_DesiredKeeper{DesiredKeeper: id}
97+
request := refproto.TeamToController{Msg: &message}
9898
c.sendRequest(&request)
9999
}
100100

101101
func (c *Client) ReplyToChoices() {
102-
request := refproto.ControllerToTeamRequest{}
102+
request := refproto.ControllerToTeam{}
103103
if err := sslconn.ReceiveMessage(c.conn, &request); err != nil {
104104
log.Fatal("Failed receiving controller request: ", err)
105105
}
106106
if request.GetAdvantageChoice() != nil {
107107
log.Printf("Received choice for: %v", *request.GetAdvantageChoice().Foul)
108108
}
109-
reply := refproto.TeamToControllerRequest_AdvantageResponse_{AdvantageResponse: refproto.TeamToControllerRequest_CONTINUE}
110-
response := refproto.TeamToControllerRequest{Request: &reply}
109+
reply := refproto.TeamToController_AdvantageResponse_{AdvantageResponse: refproto.TeamToController_CONTINUE}
110+
response := refproto.TeamToController{Msg: &reply}
111111
c.sendRequest(&response)
112112
}
113113

114-
func (c *Client) sendRequest(request *refproto.TeamToControllerRequest) {
114+
func (c *Client) sendRequest(request *refproto.TeamToController) {
115115
if privateKey != nil {
116116
request.Signature = &refproto.Signature{Token: &c.token, Pkcs1V15: []byte{}}
117117
request.Signature.Pkcs1V15 = client.Sign(privateKey, request)
@@ -124,16 +124,16 @@ func (c *Client) sendRequest(request *refproto.TeamToControllerRequest) {
124124
}
125125

126126
log.Print("Waiting for reply...")
127-
controllerReply := refproto.ControllerReply{}
128-
if err := sslconn.ReceiveMessage(c.conn, &controllerReply); err != nil {
127+
reply := refproto.ControllerToTeam{}
128+
if err := sslconn.ReceiveMessage(c.conn, &reply); err != nil {
129129
log.Fatal("Failed receiving controller reply: ", err)
130130
}
131-
log.Print("Received reply: ", controllerReply)
132-
if controllerReply.StatusCode == nil || *controllerReply.StatusCode != refproto.ControllerReply_OK {
133-
log.Fatal("Message rejected: ", *controllerReply.Reason)
131+
log.Print("Received reply: ", reply)
132+
if reply.GetControllerReply().StatusCode == nil || *reply.GetControllerReply().StatusCode != refproto.ControllerReply_OK {
133+
log.Print("Message rejected: ", *reply.GetControllerReply().Reason)
134134
}
135-
if controllerReply.NextToken != nil {
136-
c.token = *controllerReply.NextToken
135+
if reply.GetControllerReply().NextToken != nil {
136+
c.token = *reply.GetControllerReply().NextToken
137137
} else {
138138
c.token = ""
139139
}

internal/app/controller/autoRefConnection.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66
"math"
77
)
88

9-
func (c *GameController) ProcessAutoRefRequests(id string, request refproto.AutoRefToControllerRequest) error {
9+
func (c *GameController) ProcessAutoRefRequests(id string, request refproto.AutoRefToController) error {
1010
c.ConnectionMutex.Lock()
1111
defer c.ConnectionMutex.Unlock()
1212
log.Printf("Received request from autoRef '%v': %v", id, request)

internal/app/controller/teamConnection.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,17 @@ func (c *GameController) teamConnected(team Team) bool {
2222
return false
2323
}
2424

25-
func (c *GameController) ProcessTeamRequests(teamName string, request refproto.TeamToControllerRequest) error {
25+
func (c *GameController) ProcessTeamRequests(teamName string, request refproto.TeamToController) error {
2626
c.ConnectionMutex.Lock()
2727
defer c.ConnectionMutex.Unlock()
2828
log.Print("Received request from team: ", request)
2929

30-
if x, ok := request.GetRequest().(*refproto.TeamToControllerRequest_AdvantageResponse_); ok {
30+
if x, ok := request.GetMsg().(*refproto.TeamToController_AdvantageResponse_); ok {
3131
if c.outstandingTeamChoice == nil {
3232
return errors.New("No outstanding choice available. You are probably too late.")
3333
}
3434
responseTime := c.Engine.TimeProvider().Sub(c.outstandingTeamChoice.IssueTime)
35-
if x.AdvantageResponse == refproto.TeamToControllerRequest_CONTINUE {
35+
if x.AdvantageResponse == refproto.TeamToController_CONTINUE {
3636
log.Printf("Team %v decided to continue the game within %v", c.outstandingTeamChoice.Team, responseTime)
3737
switch c.outstandingTeamChoice.Event.GameEvent.Type {
3838
case GameEventBotCrashUnique:
@@ -59,7 +59,7 @@ func (c *GameController) ProcessTeamRequests(teamName string, request refproto.T
5959
return errors.New("Your team is not playing?!")
6060
}
6161

62-
if x, ok := request.GetRequest().(*refproto.TeamToControllerRequest_SubstituteBot); ok {
62+
if x, ok := request.GetMsg().(*refproto.TeamToController_SubstituteBot); ok {
6363
if c.Engine.State.TeamState[team].BotSubstitutionIntend != x.SubstituteBot {
6464
log.Printf("Team %v updated bot substituation intend to %v", team, x.SubstituteBot)
6565
c.Engine.State.TeamState[team].BotSubstitutionIntend = x.SubstituteBot
@@ -72,7 +72,7 @@ func (c *GameController) ProcessTeamRequests(teamName string, request refproto.T
7272
return errors.New("Game is not stopped.")
7373
}
7474

75-
if x, ok := request.GetRequest().(*refproto.TeamToControllerRequest_DesiredKeeper); ok {
75+
if x, ok := request.GetMsg().(*refproto.TeamToController_DesiredKeeper); ok {
7676
if x.DesiredKeeper < 0 || x.DesiredKeeper > 15 {
7777
return errors.Errorf("Goalkeeper id is invalid: %v", x.DesiredKeeper)
7878
}
@@ -88,21 +88,21 @@ func (c *GameController) askForTeamDecisionIfRequired(event Event) (handled bool
8888
handled = false
8989
if c.outstandingTeamChoice == nil && c.Engine.State.GameState() == GameStateRunning {
9090
var byTeamProto refproto.Team
91-
var choiceType refproto.ControllerToTeamRequest_AdvantageChoice_Foul
91+
var choiceType refproto.AdvantageChoice_Foul
9292
if event.GameEvent.Details.BotCrashUnique != nil {
9393
byTeamProto = *event.GameEvent.Details.BotCrashUnique.ByTeam
94-
choiceType = refproto.ControllerToTeamRequest_AdvantageChoice_COLLISION
94+
choiceType = refproto.AdvantageChoice_COLLISION
9595
} else if event.GameEvent.Details.BotPushedBot != nil {
9696
byTeamProto = *event.GameEvent.Details.BotPushedBot.ByTeam
97-
choiceType = refproto.ControllerToTeamRequest_AdvantageChoice_PUSHING
97+
choiceType = refproto.AdvantageChoice_PUSHING
9898
}
9999

100100
forTeam := NewTeam(byTeamProto).Opposite()
101101
if forTeam != "" {
102102
teamName := c.Engine.State.TeamState[forTeam].Name
103-
choice := refproto.ControllerToTeamRequest_AdvantageChoice{Foul: &choiceType}
104-
requestPayload := refproto.ControllerToTeamRequest_AdvantageChoice_{AdvantageChoice: &choice}
105-
request := refproto.ControllerToTeamRequest{Request: &requestPayload}
103+
choice := refproto.AdvantageChoice{Foul: &choiceType}
104+
requestPayload := refproto.ControllerToTeam_AdvantageChoice{AdvantageChoice: &choice}
105+
request := refproto.ControllerToTeam{Msg: &requestPayload}
106106
err := c.TeamServer.SendRequest(teamName, request)
107107
if err != nil {
108108
log.Print("Failed to ask for advantage choice: ", err)

0 commit comments

Comments
 (0)