Browse Source

kvs_stream

Namdak Tonpa 7 years ago
parent
commit
37f5c44c70
1 changed files with 6 additions and 6 deletions
  1. 6 6
      src/kvs_stream.erl

+ 6 - 6
src/kvs_stream.erl

@@ -20,8 +20,8 @@ prev(#cur{tab=T,val=B}=C)  -> lookup(kvs:get(T,ep(B)),C).
 take(N,#cur{dir=D}=C)      -> take(D,N,C,[]).
 take(N,#cur{dir=D}=C)      -> take(D,N,C,[]).
 seek(Id, #cur{tab=T}=C)    -> {ok,R}=kvs:get(T,Id), C#cur{val=R}.
 seek(Id, #cur{tab=T}=C)    -> {ok,R}=kvs:get(T,Id), C#cur{val=R}.
 add(M,#cur{dir=D}=C)       -> add(dir(D),M,C).
 add(M,#cur{dir=D}=C)       -> add(dir(D),M,C).
-remove(Id, #cur{tab=M}=C)  -> {ok,R}=kvs:get(M,Id),
-                              join(M,Id,[fix(kvs:get(M,X))||X<-[ep(R),en(R)]],C).
+remove(Id, #cur{tab=M}=C)  -> {ok,R}=kvs:get(M,Id), kvs:delete(M,Id),
+                              join([fix(kvs:get(M,X))||X<-[ep(R),en(R)]],C).
 
 
 % PRIVATE
 % PRIVATE
 
 
@@ -32,10 +32,10 @@ add(bot,M,#cur{bot=B, val=V}=C) when element(2,V) /=B -> add(bot, M, bot(C));
 add(top,M,#cur{top=T, val=V}=C) -> Id=id(M), N=sp(sn(M,T),[]), kvs:put([N,sp(V,Id)]), C#cur{val=N,top=Id};
 add(top,M,#cur{top=T, val=V}=C) -> Id=id(M), N=sp(sn(M,T),[]), kvs:put([N,sp(V,Id)]), C#cur{val=N,top=Id};
 add(bot,M,#cur{bot=B, val=V}=C) -> Id=id(M), N=sn(sp(M,B),[]), kvs:put([N,sn(V,Id)]), C#cur{val=N,bot=Id}.
 add(bot,M,#cur{bot=B, val=V}=C) -> Id=id(M), N=sn(sp(M,B),[]), kvs:put([N,sn(V,Id)]), C#cur{val=N,bot=Id}.
 
 
-join(T,I,[[],[]],C) ->                                          kvs:delete(T,I), C#cur{top=[],bot=[],val=[]};
-join(T,I,[[], R],C) -> N=sp(R,[]),    kvs:put(N),               kvs:delete(T,I), C#cur{top=id(N),val=N};
-join(T,I,[L, []],C) -> N=sn(L,[]),    kvs:put(N),               kvs:delete(T,I), C#cur{bot=id(N),val=N};
-join(T,I,[L,  R],C) -> N=sp(R,id(L)), kvs:put([N,sn(L,id(R))]), kvs:delete(T,I), C#cur{val=N}.
+join([[],[]],C) ->                                          C#cur{top=[],bot=[],val=[]};
+join([[], R],C) -> N=sp(R,[]),    kvs:put(N),               C#cur{top=id(N),val=N};
+join([L, []],C) -> N=sn(L,[]),    kvs:put(N),               C#cur{bot=id(N),val=N};
+join([L,  R],C) -> N=sp(R,id(L)), kvs:put([N,sn(L,id(R))]), C#cur{val=N}.
 
 
 sn(M,T)   -> setelement(#iterator.next, M, T).
 sn(M,T)   -> setelement(#iterator.next, M, T).
 sp(M,T)   -> setelement(#iterator.prev, M, T).
 sp(M,T)   -> setelement(#iterator.prev, M, T).