Added broadcast functions

This commit is contained in:
bowedyapper 2022-12-10 01:10:25 +00:00
parent bd2e8a9be1
commit 378f679fd1

28
host.go
View file

@ -14,6 +14,9 @@ type Host interface {
Connect(addr Address, channelCount int, data uint32) (Peer, error)
CompressWithRangeCoder() error
BroadcastBytes(data []byte, channel uint8, flags PacketFlags) error
BroadcastPacket(packet Packet, channel uint8) error
BroadcastString(str string, channel uint8, flags PacketFlags) error
}
type enetHost struct {
@ -86,3 +89,28 @@ func NewHost(addr Address, peerCount, channelLimit uint64, incomingBandwidth, ou
cHost: host,
}, nil
}
func (host *enetHost) BroadcastBytes(data []byte, channel uint8, flags PacketFlags) error {
packet, err := NewPacket(data, flags)
if err != nil {
return err
}
return host.BroadcastPacket(packet, channel)
}
func (host *enetHost) BroadcastPacket(packet Packet, channel uint8) error {
C.enet_host_broadcast(
host.cHost,
(C.enet_uint8)(channel),
packet.(enetPacket).cPacket,
)
return nil
}
func (host *enetHost) BroadcastString(str string, channel uint8, flags PacketFlags) error {
packet, err := NewPacket([]byte(str), flags)
if err != nil {
return err
}
return host.BroadcastPacket(packet, channel)
}