AddFragment method

This commit is contained in:
travisturner 2013-12-06 16:13:25 -06:00
parent e72d147c3d
commit f33cbdf168
2 changed files with 17 additions and 5 deletions

View file

@ -12,6 +12,7 @@ import (
var FrameDoesNotExistError = errors.New("Frame does not exist.")
var SliceDoesNotExistError = errors.New("Slice does not exist.")
var FragmentDoesNotExistError = errors.New("Fragment does not exist.")
var FrameSliceIntersectDoesNotExistError = errors.New("FrameSliceIntersect does not exist.")
type Location struct {
@ -67,10 +68,19 @@ type Frame struct {
type FrameSliceIntersect struct {
slice *Slice
frame *Frame
Fragments []Fragment
Fragments []*Fragment
Hashring *consistent.Consistent
}
func (fsi *FrameSliceIntersect) GetFragment(fragment_id int) (*Fragment, error) {
for _, fragment := range fsi.Fragments {
if fragment.id == fragment_id {
return fragment, nil
}
}
return nil, FragmentDoesNotExistError
}
// Add a slice to a database
func (d *Database) AddSlice(slice_id int) *Slice {
slice := Slice{id: slice_id}
@ -143,7 +153,7 @@ func (d *Database) AddFragment(frame *Frame, slice *Slice, process *Process, fra
frameslice, _ := d.GetFrameSliceIntersect(frame, slice)
fragment := Fragment{process: process, id: fragment_id}
frameslice.Fragments = append(frameslice.Fragments, fragment)
frameslice.Fragments = append(frameslice.Fragments, &fragment)
frameslice.Hashring.Add(fmt.Sprintf("%d", fragment_id))

View file

@ -25,8 +25,8 @@ func TestTopology(t *testing.T) {
database := cluster.AddDatabase("property49")
database.AddFrame("general")
//database.AddFrame("brands")
database.AddSlice()
database.AddSlice()
database.AddSlice(0)
database.AddSlice(1)
//database.AddSlice()
log.Println(database)
@ -41,7 +41,7 @@ func TestTopology(t *testing.T) {
frame, _ := database.GetFrame("general")
slice, _ := database.GetSlice(0)
loc1, _ := NewLocation("192.168.1.100:8001")
//loc1, _ := NewLocation("192.168.1.100:8001")
/*
loc2, _ := NewLocation("192.168.1.100:8002")
loc3, _ := NewLocation("192.168.1.100:8003")
@ -49,11 +49,13 @@ func TestTopology(t *testing.T) {
loc5, _ := NewLocation("192.168.1.100:8005")
*/
/*
database.AddFragment(frame, slice, loc1, 0)
database.AddFragment(frame, slice, loc1, 1)
database.AddFragment(frame, slice, loc1, 2)
database.AddFragment(frame, slice, loc1, 3)
database.AddFragment(frame, slice, loc1, 4)
*/
fsi, _ := database.GetFrameSliceIntersect(frame, slice)