Example #1
0
/**
 * Create a new chord instance with successor = host
 */
func New(h *types.Host_t, organizer types.Organizer_t, fingers, maxsuccessors uint) *types.Chord_t {
	if h == nil {
		return nil
	}
	c := new(types.Chord_t)
	c.Predecessor = nil
	c.Node = h
	c.Alive = true

	c.Finger = make([]*types.Host_t, fingers)
	for i := uint(0); i < fingers; i++ {
		c.Finger[i] = c.Node
	}

	c.Successor = h
	c.Successorlist = hostlist.New(maxsuccessors)
	for i := uint(0); i < maxsuccessors; i++ {
		c.Successorlist.AddFirst(c.Node)
	}
	c.Organizer = organizer
	return c
}