Message.go 1.02 KB
Newer Older
1 2
package dht

Jeromy's avatar
Jeromy committed
3
import (
4
	"github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/goprotobuf/proto"
Jeromy's avatar
Jeromy committed
5 6 7
	peer "github.com/jbenet/go-ipfs/peer"
)

8 9
func peerInfo(p *peer.Peer) *Message_Peer {
	pbp := new(Message_Peer)
Jeromy's avatar
Jeromy committed
10 11 12 13 14 15 16 17 18
	if len(p.Addresses) == 0 || p.Addresses[0] == nil {
		pbp.Addr = proto.String("")
	} else {
		addr, err := p.Addresses[0].String()
		if err != nil {
			//Temp: what situations could cause this?
			panic(err)
		}
		pbp.Addr = &addr
Jeromy's avatar
Jeromy committed
19 20 21 22
	}
	pid := string(p.ID)
	pbp.Id = &pid
	return pbp
23 24
}

25 26 27 28 29 30
// GetClusterLevel gets and adjusts the cluster level on the message.
// a +/- 1 adjustment is needed to distinguish a valid first level (1) and
// default "no value" protobuf behavior (0)
func (m *Message) GetClusterLevel() int32 {
	return m.GetClusterLevelRaw() - 1
}
31

32 33 34 35 36
// SetClusterLevel adjusts and sets the cluster level on the message.
// a +/- 1 adjustment is needed to distinguish a valid first level (1) and
// default "no value" protobuf behavior (0)
func (m *Message) SetClusterLevel(level int32) {
	m.ClusterLevelRaw = &level
37
}