Skip to content

Instantly share code, notes, and snippets.

@densone
Created January 5, 2014 01:05
Show Gist options
  • Save densone/8262963 to your computer and use it in GitHub Desktop.
Save densone/8262963 to your computer and use it in GitHub Desktop.
//program startup
routerList *storage.RouterList
r.routerList.Conn, err = leveldb.Open("level", nil)
if err != nil {
log.Fatal(err)
}
type RouterList struct {
Records []Router
Conn *leveldb.DB
}
//storage.go
func (d *RouterList) AddRouter(macAddr uint64, routerConfig []byte) {
key := make([]byte, 8)
binary.LittleEndian.PutUint64(key, macAddr)
log.Printf("set %X", key)
err := d.Conn.Set(key, routerConfig, nil)
if err != nil {
log.Printf("set", err)
}
}
func (d *RouterList) GetRouter(routerId uint64) (Router, error) {
key := make([]byte, 8)
binary.LittleEndian.PutUint64(key, routerId)
log.Printf("get %X", key)
data, err := d.Conn.Get(key, nil)
if err != nil {
log.Print(err)
}
router := Router{}
if err := binary.Read(bytes.NewReader(data), binary.LittleEndian, &router); err != nil {
log.Print("Cannot binary read router config")
return router, err
}
return router, nil
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment