// Copyright 2018 The agentx authors // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package pdu import "time" // Timeout defines the pdu timeout packet. type Timeout struct { Duration time.Duration Priority byte } // MarshalBinary returns the pdu packet as a slice of bytes. func (t *Timeout) MarshalBinary() ([]byte, error) { return []byte{byte(t.Duration.Seconds()), t.Priority, 0x00, 0x00}, nil } // UnmarshalBinary sets the packet structure from the provided slice of bytes. func (t *Timeout) UnmarshalBinary(data []byte) error { t.Duration = time.Duration(data[0]) * time.Second t.Priority = data[1] return nil } func (t Timeout) String() string { return t.Duration.String() }