func (this *DataSegment) Bytes(b []byte) []byte { b = serial.Uint16ToBytes(this.Conv, b) b = append(b, byte(CommandData), byte(this.Option)) b = serial.Uint32ToBytes(this.Timestamp, b) b = serial.Uint32ToBytes(this.Number, b) b = serial.Uint32ToBytes(this.SendingNext, b) b = serial.Uint16ToBytes(uint16(this.Data.Len()), b) b = append(b, this.Data.Value...) return b }
func (this *CommandSwitchAccountFactory) Marshal(command interface{}, writer io.Writer) error { cmd, ok := command.(*protocol.CommandSwitchAccount) if !ok { return ErrCommandTypeMismatch } hostStr := "" if cmd.Host != nil { hostStr = cmd.Host.String() } writer.Write([]byte{byte(len(hostStr))}) if len(hostStr) > 0 { writer.Write([]byte(hostStr)) } writer.Write(cmd.Port.Bytes(nil)) idBytes := cmd.ID.Bytes() writer.Write(idBytes) writer.Write(serial.Uint16ToBytes(cmd.AlterIds, nil)) writer.Write([]byte{byte(cmd.Level)}) writer.Write([]byte{cmd.ValidMin}) return nil }
func (this *CmdOnlySegment) Bytes(b []byte) []byte { b = serial.Uint16ToBytes(this.Conv, b) b = append(b, byte(this.Command), byte(this.Option)) b = serial.Uint32ToBytes(this.SendingNext, b) b = serial.Uint32ToBytes(this.ReceivinNext, b) return b }
func Authenticate(buffer *alloc.Buffer) { fnvHash := fnv.New32a() fnvHash.Write(buffer.Value) buffer.SliceBack(4) fnvHash.Sum(buffer.Value[:0]) buffer.Prepend(serial.Uint16ToBytes(uint16(buffer.Len()))) }
func (this *AckSegment) Bytes(b []byte) []byte { b = serial.Uint16ToBytes(this.Conv, b) b = append(b, byte(CommandACK), byte(this.Option)) b = serial.Uint32ToBytes(this.ReceivingWindow, b) b = serial.Uint32ToBytes(this.ReceivingNext, b) b = append(b, this.Count) for i := byte(0); i < this.Count; i++ { b = serial.Uint32ToBytes(this.NumberList[i], b) b = serial.Uint32ToBytes(this.TimestampList[i], b) } return b }
func (b *Buffer) AppendUint16(v uint16) *Buffer { b.Value = serial.Uint16ToBytes(v, b.Value) return b }
func (b *Buffer) PrependUint16(v uint16) *Buffer { b.SliceBack(2) serial.Uint16ToBytes(v, b.Value[:0]) return b }
// Bytes returns the correspoding bytes of this Port, in big endian order. func (this Port) Bytes(b []byte) []byte { return serial.Uint16ToBytes(this.Value(), b) }