Files
go-cart-actor/packet.go
matst80 7e0f070637
All checks were successful
Build and Publish / BuildAndDeployAmd64 (push) Successful in 28s
Build and Publish / BuildAndDeploy (push) Successful in 2m22s
types cleanup
2024-11-12 18:17:43 +01:00

64 lines
1.3 KiB
Go

package main
import (
"encoding/binary"
"io"
)
type CartMessage uint32
type PackageVersion uint32
const (
RemoteGetState = CartMessage(0x01)
RemoteHandleMutation = CartMessage(0x02)
ResponseBody = CartMessage(0x03)
RemoteGetStateReply = CartMessage(0x04)
RemoteHandleMutationReply = CartMessage(0x05)
)
type CartPacket struct {
Version PackageVersion
MessageType CartMessage
DataLength uint32
StatusCode uint32
Id CartId
}
type Packet struct {
Version PackageVersion
MessageType PoolMessage
DataLength uint32
StatusCode uint32
}
func ReadPacket(conn io.Reader, packet *Packet) error {
return binary.Read(conn, binary.LittleEndian, packet)
}
func ReadCartPacket(conn io.Reader, packet *CartPacket) error {
return binary.Read(conn, binary.LittleEndian, packet)
}
func GetPacketData(conn io.Reader, len uint32) ([]byte, error) {
if len == 0 {
return []byte{}, nil
}
data := make([]byte, len)
_, err := conn.Read(data)
return data, err
}
// func ReceivePacket(conn io.Reader) (uint32, []byte, error) {
// var packet Packet
// err := ReadPacket(conn, &packet)
// if err != nil {
// return 0, nil, err
// }
// data, err := GetPacketData(conn, packet.DataLength)
// if err != nil {
// return 0, nil, err
// }
// return packet.MessageType, data, nil
// }