package broadcast import ( "erupe-ce/config" "erupe-ce/network/mhfpacket" "erupe-ce/utils/byteframe" ) type AckSession interface { QueueSendMHF(packet mhfpacket.MHFPacket) } func DoAckEarthSucceed(s AckSession, ackHandle uint32, data []*byteframe.ByteFrame) { bf := byteframe.NewByteFrame() bf.WriteUint32(uint32(config.GetConfig().EarthID)) bf.WriteUint32(0) bf.WriteUint32(0) bf.WriteUint32(uint32(len(data))) for i := range data { bf.WriteBytes(data[i].Data()) } DoAckBufSucceed(s, ackHandle, bf.Data()) } func DoAckBufSucceed(s AckSession, ackHandle uint32, data []byte) { s.QueueSendMHF(&mhfpacket.MsgSysAck{ AckHandle: ackHandle, IsBufferResponse: true, ErrorCode: 0, AckData: data, }) } func DoAckBufFail(s AckSession, ackHandle uint32, data []byte) { s.QueueSendMHF(&mhfpacket.MsgSysAck{ AckHandle: ackHandle, IsBufferResponse: true, ErrorCode: 1, AckData: data, }) } func DoAckSimpleSucceed(s AckSession, ackHandle uint32, data []byte) { s.QueueSendMHF(&mhfpacket.MsgSysAck{ AckHandle: ackHandle, IsBufferResponse: false, ErrorCode: 0, AckData: data, }) } func DoAckSimpleFail(s AckSession, ackHandle uint32, data []byte) { s.QueueSendMHF(&mhfpacket.MsgSysAck{ AckHandle: ackHandle, IsBufferResponse: false, ErrorCode: 1, AckData: data, }) }