remove trailing space

release-0.4
Cong Ding 2013-07-16 19:40:41 +02:00
parent bac9bf59cf
commit 823691feaa
4 changed files with 45 additions and 45 deletions

View File

@ -68,7 +68,7 @@ type Response struct {
PrevValue string `json:"prevValue,omitempty"`
Value string `json:"value,omitempty"`
// If the key did not exist before the action,
// If the key did not exist before the action,
// this field should be set to true
NewKey bool `json:"newKey,omitempty"`
@ -145,9 +145,9 @@ func (s *Store) Set(key string, value string, expireTime time.Time, index uint64
// base response
resp := Response{
Action: "SET",
Key: key,
Value: value,
Action: "SET",
Key: key,
Value: value,
Index: index,
}
@ -164,8 +164,8 @@ func (s *Store) Set(key string, value string, expireTime time.Time, index uint64
if isExpire {
TTL = int64(expireTime.Sub(time.Now()) / time.Second)
resp.Expiration = &expireTime
resp.TTL = TTL
}
resp.TTL = TTL
}
// Get the node
node, ok := s.Tree.get(key)
@ -259,18 +259,18 @@ func (s *Store) internalGet(key string) *Response {
isExpire = !node.ExpireTime.Equal(PERMANENT)
resp := &Response{
Action: "GET",
Key: key,
Value: node.Value,
Action: "GET",
Key: key,
Value: node.Value,
Index: s.Index,
}
// Update ttl
if isExpire {
TTL = int64(node.ExpireTime.Sub(time.Now()) / time.Second)
resp.Expiration = &node.ExpireTime
resp.TTL = TTL
}
resp.Expiration = &node.ExpireTime
resp.TTL = TTL
}
return resp
@ -300,7 +300,7 @@ func (s *Store) Get(key string) ([]byte, error) {
isExpire = !nodes[i].ExpireTime.Equal(PERMANENT)
resps[i] = Response{
Action: "GET",
Action: "GET",
Index: s.Index,
Key: path.Join(key, keys[i]),
}
@ -314,9 +314,9 @@ func (s *Store) Get(key string) ([]byte, error) {
// Update ttl
if isExpire {
TTL = int64(nodes[i].ExpireTime.Sub(time.Now()) / time.Second)
resps[i].Expiration = &nodes[i].ExpireTime
resps[i].TTL = TTL
}
resps[i].Expiration = &nodes[i].ExpireTime
resps[i].TTL = TTL
}
}
if len(resps) == 1 {
@ -342,9 +342,9 @@ func (s *Store) Delete(key string, index uint64) ([]byte, error) {
if ok {
resp := Response{
Action: "DELETE",
Key: key,
PrevValue: node.Value,
Action: "DELETE",
Key: key,
PrevValue: node.Value,
Index: index,
}
@ -358,7 +358,7 @@ func (s *Store) Delete(key string, index uint64) ([]byte, error) {
// Kill the expire go routine
node.update <- PERMANENT
s.Tree.delete(key)
}
msg, err := json.Marshal(resp)
@ -387,7 +387,7 @@ func (s *Store) TestAndSet(key string, prevValue string, value string, expireTim
if resp == nil {
err := NotFoundError(key)
return nil, err
return nil, err
}
if resp.Value == prevValue {
@ -432,10 +432,10 @@ func (s *Store) monitorExpiration(key string, update chan time.Time, expireTime
s.Tree.delete(key)
resp := Response{
Action: "DELETE",
Key: key,
PrevValue: node.Value,
Expiration: &node.ExpireTime,
Action: "DELETE",
Key: key,
PrevValue: node.Value,
Expiration: &node.ExpireTime,
Index: s.Index,
}

View File

@ -12,7 +12,7 @@ import (
//
//------------------------------------------------------------------------------
// A file system like tree structure. Each non-leaf node of the tree has a hashmap to
// A file system like tree structure. Each non-leaf node of the tree has a hashmap to
// store its children nodes. Leaf nodes has no hashmap (a nil pointer)
type tree struct {
Root *treeNode
@ -21,7 +21,7 @@ type tree struct {
// A treeNode wraps a Node. It has a hashmap to keep records of its children treeNodes.
type treeNode struct {
InternalNode Node
Dir bool
Dir bool
NodeMap map[string]*treeNode
}
@ -75,7 +75,7 @@ func (t *tree) set(key string, value Node) bool {
// get the node from the nodeMap of the current level
tn, ok := nodeMap[nodesName[i]]
if !ok {
// add a new directory and set newDir to true
newDir = true
@ -85,7 +85,7 @@ func (t *tree) set(key string, value Node) bool {
} else if ok && !tn.Dir {
// if we meet a non-directory node, we cannot set the key
// if we meet a non-directory node, we cannot set the key
return false
} else {
@ -102,7 +102,7 @@ func (t *tree) set(key string, value Node) bool {
// we add a new treeNode
tn := &treeNode{value, false, nil}
nodeMap[nodesName[i]] = tn
} else {
if tn.Dir {
return false
@ -114,12 +114,12 @@ func (t *tree) set(key string, value Node) bool {
}
// Get the tree node of the key
// Get the tree node of the key
func (t *tree)internalGet(key string) (*treeNode, bool) {
nodesName := split(key)
nodeMap := t.Root.NodeMap
var i int
for i = 0; i < len(nodesName) - 1; i++ {
@ -136,7 +136,7 @@ func (t *tree)internalGet(key string) (*treeNode, bool) {
} else {
return nil, ok
}
}
}
// get the internalNode of the key
func (t *tree) get(key string) (Node, bool) {
@ -163,7 +163,7 @@ func (t *tree) list(directory string) ([]Node, []string, []bool, bool) {
nodes := make([]Node, 1)
nodes[0] = treeNode.InternalNode
return nodes, make([]string, 1), make([]bool, 1), true
}
}
length := len(treeNode.NodeMap)
nodes := make([]Node, length)
keys := make([]string, length)
@ -190,7 +190,7 @@ func (t *tree) delete(key string) bool {
nodesName := split(key)
nodeMap := t.Root.NodeMap
var i int
for i = 0; i < len(nodesName) - 1; i++ {
@ -214,11 +214,11 @@ func (t *tree) traverse(f func(string, *Node), sort bool) {
if sort {
sortDfs("", t.Root, f)
} else {
dfs("", t.Root, f)
dfs("", t.Root, f)
}
}
// deep first search to traverse the tree
// deep first search to traverse the tree
// apply the func f to each internal node
func dfs(key string, t *treeNode, f func(string, *Node)) {

View File

@ -10,13 +10,13 @@ import (
func TestStoreGet(t *testing.T) {
ts := &tree{
ts := &tree{
&treeNode{
CreateTestNode("/"),
true,
CreateTestNode("/"),
true,
make(map[string]*treeNode),
},
}
}
// create key
ts.set("/foo", CreateTestNode("bar"))
@ -49,13 +49,13 @@ func TestStoreGet(t *testing.T) {
}
// delete a key
ok = ts.delete("/foo")
ok = ts.delete("/foo")
if !ok {
t.Fatalf("cannot delete key")
}
// delete a directory
ok = ts.delete("/hello")
ok = ts.delete("/hello")
if ok {
t.Fatalf("Expect cannot delet /hello, but deleted! ")
}
@ -74,7 +74,7 @@ func TestStoreGet(t *testing.T) {
for i := 0; i < length; i++ {
fmt.Println(keys[i] , "=", nodes[i].Value, "[", dirs[i], "]")
}
}
}
// speed test

View File

@ -34,7 +34,7 @@ func CreateWatcher() *Watcher {
}
// Add a watcher to the watcherHub
func (w *WatcherHub) addWatcher(prefix string, watcher *Watcher, sinceIndex uint64,
func (w *WatcherHub) addWatcher(prefix string, watcher *Watcher, sinceIndex uint64,
responseStartIndex uint64, currentIndex uint64, resMap *map[string]Response) error {
prefix = path.Clean("/" + prefix)