Просмотр исходного кода

remove cut from api and stub from mnesia.

dxt 4 лет назад
Родитель
Сommit
6c5112f2a5
3 измененных файлов с 5 добавлено и 20 удалено
  1. 1 2
      include/stream.hrl
  2. 0 5
      src/layers/kvs_stream.erl
  3. 4 13
      src/stores/kvs_st.erl

+ 1 - 2
include/stream.hrl

@@ -2,7 +2,7 @@
 -define(STREAM_HRL, true).
 -include("kvs.hrl").
 -include("cursors.hrl").
--define(STREAM, [top/1, bot/1, next/1, prev/1, drop/1, take/1, append/2, cut/2, feed/1,
+-define(STREAM, [top/1, bot/1, next/1, prev/1, drop/1, take/1, append/2, feed/1,
                  load_reader/1, writer/1, reader/1, save/1, add/1, remove/2]).
 
 -spec top(#reader{})  -> #reader{}.
@@ -19,5 +19,4 @@
 -spec add(#writer{}) -> #writer{}.
 -spec append(tuple(),term()) -> any().
 -spec remove(tuple(),term()) -> integer().
--spec cut(term(),term()) -> {ok,non_neg_integer()} | {error, not_found}.
 -endif.

+ 0 - 5
src/layers/kvs_stream.erl

@@ -107,8 +107,3 @@ append(Rec,Feed) ->
    case kvs:get(Name,Id) of
         {ok,_}    -> Id;
         {error,_} -> kvs:save(kvs:add((kvs:writer(Feed))#writer{args=Rec})), Id end.
-
-cut(_Feed,Id) ->
-   case kvs:get(writer,Id) of
-        {ok,#writer{count=N}} -> {ok,N};
-        {error,_} -> {error,not_found} end.

+ 4 - 13
src/stores/kvs_st.erl

@@ -56,33 +56,24 @@ save(C) -> NC = c4(C,[]), kvs:put(NC), NC.
 add(#writer{args=M}=C) when element(2,M) == [] -> add(si(M,kvs:seq([],[])),C);
 add(#writer{args=M}=C) -> add(M,C).
 
-add(M,#writer{id=Feed,count=S}=C) -> NS=S+1, raw_append(M,Feed), C#writer{cache={e(1,M),e(2,M),Feed},count=NS}.
+add(M,#writer{id=Feed,count=S}=C) -> NS=S+1, raw_append(M,Feed), C#writer{cache={e(1,M),e(2,M),key(Feed)},count=NS}.
 
 remove(Rec,Feed) ->
    kvs:ensure(#writer{id=Feed}),
    W = #writer{count=C, cache=Ch} = kvs:writer(Feed),
-   Ch1 = case {e(1,Rec),e(2,Rec),Feed} of Ch -> Ch;_ -> [] end, % need to keep reference for next element
+   Ch1 = case {e(1,Rec),e(2,Rec),key(Feed)} of Ch -> Ch;_ -> [] end, % need to keep reference for next element
    case kvs:delete(Feed,id(Rec)) of
         ok -> Count = C - 1,
               save(W#writer{count = Count, cache=Ch1}),
               Count;
          _ -> C end.
 
-raw_append(M,Feed) ->
-   rocksdb:put(ref(), key(Feed,M), term_to_binary(M), [{sync,true}]).
+raw_append(M,Feed) -> rocksdb:put(ref(), key(Feed,M), term_to_binary(M), [{sync,true}]).
 
 append(Rec,Feed) ->
    kvs:ensure(#writer{id=Feed}),
    Id = e(2,Rec),
    W = writer(Feed),
    case kvs:get(Feed,Id) of
-        {ok,_} -> raw_append(Rec,Feed), save(W#writer{cache={e(1,Rec),Id,Feed},count=W#writer.count + 1}), Id;
+        {ok,_} -> raw_append(Rec,Feed), save(W#writer{cache={e(1,Rec),Id,key(Feed)},count=W#writer.count + 1}), Id;
         {error,_} -> save(add(W#writer{args=Rec})), Id end.
-
-cut(Feed,Id) ->
-    Key    = key(Feed),
-    A      = key(Feed,Id),
-    {ok,I} = rocksdb:iterator(ref(), []),
-    case rocksdb:iterator_move(I, {seek,A}) of
-         {ok,A,X} -> {ok,kvs_rocks:cut(I,Key,size(Key),A,X,[],-1,0)};
-                _ -> {error,not_found} end.