major refactoring :/
All checks were successful
Build and Publish / BuildAndDeploy (push) Successful in 1m56s
All checks were successful
Build and Publish / BuildAndDeploy (push) Successful in 1m56s
This commit is contained in:
34
rpc-pool.go
34
rpc-pool.go
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user