Ejemplo n.º 1
0
func (n *Node) Serialize(writer typedio.Writer) (err os.Error) {
	err = writer.WriteUint16(n.Id) // id
	if err != nil {
		return
	}

	err = writer.WriteUint8(n.Status) // status
	if err != nil {
		return
	}

	err = writer.WriteString(n.Address.String()) // address
	if err != nil {
		return
	}

	err = writer.WriteUint16(n.TcpPort) // tcp port
	if err != nil {
		return
	}

	err = writer.WriteUint16(n.UdpPort) // udp port
	if err != nil {
		return
	}

	err = writer.WriteUint8(uint8(len(n.Rings))) // nb rings
	if err != nil {
		return
	}

	for _, ring := range n.Rings { // each ring
		err = writer.WriteUint8(ring.Ring)
		if err != nil {
			return
		}

		err = writer.WriteString(ring.Token)
		if err != nil {
			return
		}
	}

	return nil
}