From 7f52ff759ea90fbbca073442511fa9eb094d9746 Mon Sep 17 00:00:00 2001 From: travisturner Date: Tue, 10 Dec 2013 14:54:06 -0600 Subject: [PATCH] made add* and get* methods private --- core/etcd.go | 4 ++-- db/topology.go | 34 ++++++++++++++-------------------- db/topology_test.go | 34 +++++++++++++++++++--------------- 3 files changed, 35 insertions(+), 37 deletions(-) diff --git a/core/etcd.go b/core/etcd.go index 795ce4b1f..76bda70ea 100644 --- a/core/etcd.go +++ b/core/etcd.go @@ -106,7 +106,7 @@ func (service *Service) MetaWatcher() { if key == "frame" { for _, frame_ref := range database_attr_ref.Nodes { frame_name := frame_ref.Key[len(database_attr_ref.Key)+1:] - frame := database.AddFrame(frame_name) + frame := database.GetOrCreateFrame(frame_name) for _, frame_attr_ref := range frame_ref.Nodes { key = frame_attr_ref.Key[len(frame_ref.Key)+1:] if key == "slice" { @@ -116,7 +116,7 @@ func (service *Service) MetaWatcher() { if err != nil { log.Fatal(err) } - slice := database.AddSlice(slice_id) + slice := database.GetOrCreateSlice(slice_id) for _, slice_attr_ref := range slice_ref.Nodes { key = slice_attr_ref.Key[len(slice_ref.Key)+1:] if key == "fragment" { diff --git a/db/topology.go b/db/topology.go index 226b48404..6c8856bc3 100644 --- a/db/topology.go +++ b/db/topology.go @@ -2,7 +2,7 @@ package db import ( "github.com/stathat/consistent" - //"github.com/davecgh/go-spew/spew" + "github.com/davecgh/go-spew/spew" "github.com/nu7hatch/gouuid" "log" "fmt" @@ -130,9 +130,7 @@ type Frame struct { } // Get a frame from a database -func (d *Database) GetFrame(name string) (*Frame, error) { - d.mutex.Lock() - defer d.mutex.Unlock() +func (d *Database) getFrame(name string) (*Frame, error) { for _, frame := range d.frames { if frame.name == name { return frame, nil @@ -142,9 +140,7 @@ func (d *Database) GetFrame(name string) (*Frame, error) { } // Add a frame to a database -func (d *Database) AddFrame(name string) *Frame { - d.mutex.Lock() - defer d.mutex.Unlock() +func (d *Database) addFrame(name string) *Frame { frame := Frame{name: name} d.frames = append(d.frames, &frame) // add intersections @@ -157,11 +153,11 @@ func (d *Database) AddFrame(name string) *Frame { func (d *Database) GetOrCreateFrame(name string) *Frame { d.mutex.Lock() defer d.mutex.Unlock() - frame, err := d.GetFrame(name) + frame, err := d.getFrame(name) if err == nil { return frame } - return d.AddFrame(name) + return d.addFrame(name) } @@ -173,9 +169,7 @@ type Slice struct { } // Get a slice from a database -func (d *Database) GetSlice(slice_id int) (*Slice, error) { - d.mutex.Lock() - defer d.mutex.Unlock() +func (d *Database) getSlice(slice_id int) (*Slice, error) { for _, slice := range d.slices { if slice.id == slice_id { return slice, nil @@ -185,9 +179,7 @@ func (d *Database) GetSlice(slice_id int) (*Slice, error) { } // Add a slice to a database -func (d *Database) AddSlice(slice_id int) *Slice { - d.mutex.Lock() - defer d.mutex.Unlock() +func (d *Database) addSlice(slice_id int) *Slice { slice := Slice{id: slice_id} d.slices = append(d.slices, &slice) // add intersections @@ -200,11 +192,11 @@ func (d *Database) AddSlice(slice_id int) *Slice { func (d *Database) GetOrCreateSlice(slice_id int) *Slice { d.mutex.Lock() defer d.mutex.Unlock() - slice, err := d.GetSlice(slice_id) + slice, err := d.getSlice(slice_id) if err == nil { return slice } - return d.AddSlice(slice_id) + return d.addSlice(slice_id) } @@ -246,6 +238,8 @@ func (fsi *FrameSliceIntersect) GetFragment(fragment_id *uuid.UUID) (*Fragment, func (fsi *FrameSliceIntersect) AddFragment(fragment *Fragment) { fsi.fragments = append(fsi.fragments, fragment) fsi.hashring.Add(fragment.id.String()) + spew.Dump("DUMPY") + spew.Dump(fragment.id.String()) } @@ -263,7 +257,7 @@ func (d *Database) OldGetFragment(bitmap Bitmap, profile_id int) (*Fragment, err d.mutex.Lock() defer d.mutex.Unlock() slice, _ := d.GetSliceForProfile(profile_id) - frame, _ := d.GetFrame(bitmap.FrameType) + frame, _ := d.getFrame(bitmap.FrameType) fsi, err := d.GetFrameSliceIntersect(frame, slice) frag_id_s, err := fsi.hashring.Get(fmt.Sprintf("%d", bitmap.Id)) frag_id, err := uuid.ParseHex(frag_id_s) @@ -277,7 +271,7 @@ func (d *Database) OldGetFragment(bitmap Bitmap, profile_id int) (*Fragment, err /* // NOT IMPLEMENTED // this would loop through all frame_slice_intersect[], then all fragmments to find a match -func (d *Database) GetFragment(fragment_id *uuid.UUID) *Fragment { +func (d *Database) GetFragmentById(fragment_id *uuid.UUID) *Fragment { } */ func (d *Database) GetFragment(frame *Frame, slice *Slice, fragment_id *uuid.UUID) (*Fragment, error) { @@ -354,7 +348,7 @@ func (f *Fragment) SetProcess(process *Process) { // Get a slice from a database func (d *Database) GetSliceForProfile(profile_id int) (*Slice, error) { slice_id := profile_id / SLICE_WIDTH - return d.GetSlice(slice_id) + return d.getSlice(slice_id) } diff --git a/db/topology_test.go b/db/topology_test.go index f5ac55c00..ed4c13ec9 100644 --- a/db/topology_test.go +++ b/db/topology_test.go @@ -24,13 +24,18 @@ func TestTopology(t *testing.T) { */ cluster := NewCluster() - database := cluster.AddDatabase("property49") - database.AddFrame("general") - //database.AddFrame("brands") - database.AddSlice(0) - database.AddSlice(1) - //database.AddSlice() + database := cluster.AddDatabase("main") + frame := database.GetOrCreateFrame("general") + slice := database.GetOrCreateSlice(0) + + fragment_id, _ := uuid.ParseHex("6a9aea17-2915-4eb4-858f-a8d7d4dc0a1e") + spew.Dump(fragment_id) + database.AddFragment(frame, slice, fragment_id) + + + spew.Dump(database) + /* log.Println(database) log.Println("----------------------------------") for _, fsi := range database.frame_slice_intersects { @@ -38,12 +43,10 @@ func TestTopology(t *testing.T) { } num_slices, _ := database.NumSlices() log.Println(num_slices) + */ - - frame, _ := database.GetFrame("general") - slice, _ := database.GetSlice(0) - log.Println(frame) - log.Println(slice) + //frame, _ := database.GetFrame("general") + //slice, _ := database.GetSlice(0) //loc1, _ := NewLocation("192.168.1.100:8001") /* @@ -61,8 +64,9 @@ func TestTopology(t *testing.T) { database.AddFragment(frame, slice, loc1, 4) */ - uuid, _ := uuid.ParseHex("6a9aea17-2915-4eb4-858f-a8d7d4dc0a1e") - database.AddFragment(frame, slice, uuid) + //uuid, _ := uuid.ParseHex("6a9aea17-2915-4eb4-858f-a8d7d4dc0a1e") + //spew.Dump(uuid) + ////database.AddFragment(frame, slice, uuid) /* database.AddFragment(frame, slice, process) database.AddFragment(frame, slice, process) @@ -86,8 +90,8 @@ func TestTopology(t *testing.T) { log.Println(errer) */ - bitmap := Bitmap{Id: 555, FrameType: "general"} - log.Println("bitmap:",bitmap) + ////bitmap := Bitmap{Id: 555, FrameType: "general"} + ////log.Println("bitmap:",bitmap) /* profile_id := 65535