major refactoring :/
All checks were successful
Build and Publish / BuildAndDeploy (push) Successful in 1m56s

This commit is contained in:
matst80
2024-11-10 18:39:28 +01:00
parent 50a1c56d56
commit 056bfd9ffe
10 changed files with 469 additions and 130 deletions

View File

@@ -2,11 +2,9 @@ package main
import (
"fmt"
"io"
"net"
"strings"
"sync"
"time"
)
type RemoteGrainPool struct {
@@ -26,8 +24,7 @@ func ToCartId(id string) CartId {
}
type RemoteGrain struct {
net.Conn
*PacketQueue
*CartClient
Id CartId
Address string
}
@@ -59,19 +56,18 @@ func (g *RemoteGrain) Connect() error {
}
func (g *RemoteGrain) HandleMessage(message *Message, isReplay bool) ([]byte, error) {
err := g.Connect()
data, err := GetData(message.Write)
if err != nil {
return nil, err
}
err = SendCartPacket(g.connection, g.Id, RemoteHandleMessage, message.Write)
reply, err := g.Call(RemoteHandleMessage, g.Id, RemoteHandleMessageReply, data)
if err != nil {
return nil, err
}
packet, err := g.Expect(ResponseBody, time.Second)
if err != nil {
return nil, err
}
return packet.Data, err
return reply, err
}
func (g *RemoteGrain) GetId() CartId {
@@ -79,21 +75,7 @@ func (g *RemoteGrain) GetId() CartId {
}
func (g *RemoteGrain) GetCurrentState() ([]byte, error) {
err := g.Connect()
if err != nil {
return nil, err
}
err = SendCartPacket(g.connection, g.Id, RemoteGetState, func(w io.Writer) error {
return nil
})
if err != nil {
return nil, err
}
packet, err := g.Expect(ResponseBody, time.Second)
if err != nil {
return nil, err
}
return packet.Data, nil
return g.Call(RemoteGetState, g.Id, RemoteGetStateReply, nil)
}
func NewRemoteGrainPool(addr string) *RemoteGrainPool {