store += append
[epoint] / store / store.go
index 2595f88..b05c79e 100644 (file)
@@ -41,8 +41,7 @@ func (c *Conn) Ensure(name string) (err error) {
 
 func (c *Conn) Set(name, k string, v []byte) (err error) {
        fn := filepath.Join(c.path, name, k)
-       // os.O_SYNC
-       f, err := os.Create(fn+".tmp")
+       f, err := os.OpenFile(fn+".tmp", os.O_CREATE|os.O_TRUNC|os.O_WRONLY|os.O_SYNC, 0666)
        if err != nil {
                return
        }
@@ -55,6 +54,17 @@ func (c *Conn) Set(name, k string, v []byte) (err error) {
        return
 }
 
+func (c *Conn) Append(name, k string, v []byte) (err error) {
+       fn := filepath.Join(c.path, name, k)
+       f, err := os.OpenFile(fn, os.O_CREATE|os.O_APPEND|os.O_WRONLY|os.O_SYNC, 0666)
+       if err != nil {
+               return
+       }
+       defer f.Close()
+       _, err = f.Write(v)
+       return
+}
+
 func (c *Conn) Close() (err error) {
        return
 }