Skip to content

Commit a2e0e7a

Browse files
committed
Move -spec declarations to functions to make edoc happy, plus some incidental whitespace cleanups
1 parent 560716f commit a2e0e7a

File tree

1 file changed

+89
-89
lines changed

1 file changed

+89
-89
lines changed

src/bitcask_nifs.erl

Lines changed: 89 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -82,84 +82,9 @@
8282

8383
-type errno_atom() :: atom(). % POSIX errno as atom
8484

85+
8586
-spec init() ->
8687
ok | {error, any()}.
87-
-spec keydir_new() -> {ok, reference()}.
88-
-spec keydir_new(string()) ->
89-
{ok, reference()} |
90-
{ready, reference()} | {not_ready, reference()} |
91-
{error, not_ready}.
92-
-spec maybe_keydir_new(string()) ->
93-
{ready, reference()} |
94-
{error, not_ready}.
95-
-spec keydir_mark_ready(reference()) ->
96-
ok.
97-
-spec keydir_put(reference(), binary(), integer(), integer(),
98-
integer(), integer(), integer()) ->
99-
ok | already_exists.
100-
-spec keydir_put(reference(), binary(), integer(), integer(),
101-
integer(), integer(), integer(), boolean()) ->
102-
ok | already_exists.
103-
-spec keydir_put(reference(), binary(), integer(), integer(),
104-
integer(), integer(), integer(), integer(), integer()) ->
105-
ok | already_exists.
106-
-spec keydir_put_int(reference(), binary(), integer(), integer(),
107-
binary(), integer(), 0 | 1, integer(), integer(), binary()) ->
108-
ok | already_exists.
109-
-spec keydir_get(reference(), binary()) ->
110-
not_found | #bitcask_entry{}.
111-
-spec keydir_get(reference(), binary(), integer()) ->
112-
not_found | #bitcask_entry{}.
113-
-spec keydir_get_int(reference(), binary(), integer()) ->
114-
not_found | #bitcask_entry{}.
115-
-spec keydir_remove(reference(), binary()) ->
116-
ok | already_exists.
117-
-spec keydir_remove(reference(), binary(), integer(), integer(), integer()) ->
118-
ok | already_exists.
119-
-spec keydir_copy(reference()) ->
120-
{ok, reference()}.
121-
-spec keydir_itr(reference(), integer(), integer()) ->
122-
ok | out_of_date | {error, iteration_in_process}.
123-
-spec keydir_itr_next(reference()) ->
124-
#bitcask_entry{} |
125-
{error, iteration_not_started} | allocation_error | not_found.
126-
-spec keydir_itr_release(reference()) ->
127-
ok.
128-
-spec increment_file_id(reference()) ->
129-
{ok, non_neg_integer()}.
130-
-spec increment_file_id(reference(), non_neg_integer()) ->
131-
{ok, non_neg_integer()}.
132-
-spec keydir_fold(reference(), fun((any(), any()) -> any()), any(),
133-
integer(), integer()) ->
134-
any() | {error, any()}.
135-
-spec keydir_info(reference()) ->
136-
{integer(), integer(),
137-
[{integer(), integer(), integer(), integer(), integer(),
138-
integer(), integer(), integer()}],
139-
{integer(), integer(), boolean(), 'undefined'|integer()},
140-
non_neg_integer()}.
141-
-spec keydir_release(reference()) ->
142-
ok.
143-
-spec keydir_trim_fstats(reference(), [integer()]) ->
144-
{ok, integer()} | {error, atom()}.
145-
-spec update_fstats(reference(), non_neg_integer(), non_neg_integer(),
146-
integer(), integer(), integer(), integer(), integer() ) ->
147-
ok.
148-
-spec set_pending_delete(reference(), non_neg_integer()) ->
149-
ok.
150-
-spec lock_acquire(string(), integer()) ->
151-
{ok, reference()} | {error, atom()}.
152-
-spec lock_release(reference()) ->
153-
ok.
154-
-spec lock_readdata(reference()) ->
155-
{ok, binary()} |
156-
{fstat_error, integer()} | {error, allocation_error} |
157-
{pread_error, integer()}.
158-
-spec lock_writedata(reference(), binary()) ->
159-
ok |
160-
{ftruncate_error, errno_atom()} | {pwrite_error, errno_atom()} |
161-
{error, lock_not_writable}.
162-
16388
init() ->
16489
case code:priv_dir(bitcask) of
16590
{error, bad_name} ->
@@ -170,7 +95,7 @@ init() ->
17095
SoName = filename:join("../priv", "bitcask")
17196
end;
17297
Dir ->
173-
SoName = filename:join(Dir, "bitcask")
98+
SoName = filename:join(Dir, "bitcask")
17499
end,
175100
erlang:load_nif(SoName, 0).
176101

@@ -182,31 +107,50 @@ set_pulse_pid(_Pid) ->
182107
%% ===================================================================
183108
%% Internal functions
184109
%% ===================================================================
185-
%%
110+
%%
186111
%% Most of the functions below are actually defined in c_src/bitcask_nifs.c
187112
%% See that file for the real functionality of the bitcask_nifs module.
188113
%% The definitions here are only to satisfy trivial static analysis.
189-
%%
114+
%%
190115

191116

117+
-spec keydir_new() -> {ok, reference()}.
192118
keydir_new() ->
193119
erlang:nif_error({error, not_loaded}).
194120

121+
-spec keydir_new(string()) ->
122+
{ok, reference()} |
123+
{ready, reference()} | {not_ready, reference()} |
124+
{error, not_ready}.
195125
keydir_new(Name) when is_list(Name) ->
196126
erlang:nif_error({error, not_loaded}).
197127

128+
-spec maybe_keydir_new(string()) ->
129+
{ready, reference()} |
130+
{error, not_ready}.
198131
maybe_keydir_new(Name) when is_list(Name) ->
199132
erlang:nif_error({error, not_loaded}).
200133

134+
-spec keydir_mark_ready(reference()) ->
135+
ok.
201136
keydir_mark_ready(_Ref) ->
202137
erlang:nif_error({error, not_loaded}).
203138

139+
-spec keydir_put(reference(), binary(), integer(), integer(),
140+
integer(), integer(), integer()) ->
141+
ok | already_exists.
204142
keydir_put(Ref, Key, FileId, TotalSz, Offset, Tstamp, NowSec) ->
205143
keydir_put(Ref, Key, FileId, TotalSz, Offset, Tstamp, NowSec, false).
206144

145+
-spec keydir_put(reference(), binary(), integer(), integer(),
146+
integer(), integer(), integer(), boolean()) ->
147+
ok | already_exists.
207148
keydir_put(Ref, Key, FileId, TotalSz, Offset, Tstamp, NowSec, NewestPutB) ->
208149
keydir_put(Ref, Key, FileId, TotalSz, Offset, Tstamp, NowSec, NewestPutB, 0, 0).
209150

151+
-spec keydir_put(reference(), binary(), integer(), integer(),
152+
integer(), integer(), integer(), integer(), integer()) ->
153+
ok | already_exists.
210154
keydir_put(Ref, Key, FileId, TotalSz, Offset, Tstamp, NowSec, OldFileId, OldOffset) ->
211155
keydir_put(Ref, Key, FileId, TotalSz, Offset, Tstamp, NowSec, false,
212156
OldFileId, OldOffset).
@@ -219,51 +163,71 @@ keydir_put(Ref, Key, FileId, TotalSz, Offset, Tstamp, NowSec, NewestPutB,
219163
end,
220164
OldFileId, <<OldOffset:64/unsigned-native>>).
221165

166+
-spec keydir_put_int(reference(), binary(), integer(), integer(),
167+
binary(), integer(), 0 | 1, integer(), integer(), binary()) ->
168+
ok | already_exists.
222169
keydir_put_int(_Ref, _Key, _FileId, _TotalSz, _Offset, _Tstamp, _NowSec,
223170
_NewestPutI, _OldFileId, _OldOffset) ->
224171
erlang:nif_error({error, not_loaded}).
225172

173+
-spec keydir_get(reference(), binary()) ->
174+
not_found | #bitcask_entry{}.
226175
keydir_get(Ref, Key) ->
227176
keydir_get(Ref, Key, 16#ffffffffffffffff).
228177

178+
-spec keydir_get(reference(), binary(), integer()) ->
179+
not_found | #bitcask_entry{}.
229180
keydir_get(Ref, Key, Epoch) ->
230181
case keydir_get_int(Ref, Key, Epoch) of
231182
E when is_record(E, bitcask_entry) ->
232183
<<Offset:64/unsigned-native>> = E#bitcask_entry.offset,
233184
E#bitcask_entry{offset = Offset};
234-
_ ->
185+
_ ->
235186
not_found
236187
end.
237188

189+
-spec keydir_get_int(reference(), binary(), integer()) ->
190+
not_found | #bitcask_entry{}.
238191
keydir_get_int(_Ref, _Key, _Epoch) ->
239192
erlang:nif_error({error, not_loaded}).
240193

241194
keydir_get_epoch(_Ref) ->
242195
erlang:nif_error({error, not_loaded}).
243196

197+
-spec keydir_remove(reference(), binary()) ->
198+
ok | already_exists.
244199
keydir_remove(Ref, Key) ->
245200
keydir_remove(Ref, Key, bitcask_time:tstamp()).
246201

247202
keydir_remove(_Ref, _Key, _TStamp) ->
248203
erlang:nif_error({error, not_loaded}).
249204

205+
-spec keydir_remove(reference(), binary(), integer(), integer(), integer()) ->
206+
ok | already_exists.
250207
keydir_remove(Ref, Key, Tstamp, FileId, Offset) ->
251-
keydir_remove_int(Ref, Key, Tstamp, FileId, <<Offset:64/unsigned-native>>,
208+
keydir_remove_int(Ref, Key, Tstamp, FileId, <<Offset:64/unsigned-native>>,
252209
bitcask_time:tstamp()).
253210

254211
keydir_remove_int(_Ref, _Key, _Tstamp, _FileId, _Offset, _TStamp) ->
255212
erlang:nif_error({error, not_loaded}).
256213

214+
-spec keydir_copy(reference()) ->
215+
{ok, reference()}.
257216
keydir_copy(_Ref) ->
258217
erlang:nif_error({error, not_loaded}).
259218

219+
-spec keydir_itr(reference(), integer(), integer()) ->
220+
ok | out_of_date | {error, iteration_in_process}.
260221
keydir_itr(Ref, MaxAge, MaxPuts) ->
261222
TS = bitcask_time:tstamp(),
262223
keydir_itr_int(Ref, TS, MaxAge, MaxPuts).
263224

264225
keydir_itr_int(_Ref, _Ts, _MaxAge, _MaxPuts) ->
265226
erlang:nif_error({error, not_loaded}).
266227

228+
-spec keydir_itr_next(reference()) ->
229+
#bitcask_entry{} |
230+
{error, iteration_not_started} | allocation_error | not_found.
267231
keydir_itr_next(Ref) ->
268232
case keydir_itr_next_int(Ref) of
269233
E when is_record(E, bitcask_entry) ->
@@ -276,15 +240,24 @@ keydir_itr_next(Ref) ->
276240
keydir_itr_next_int(_Ref) ->
277241
erlang:nif_error({error, not_loaded}).
278242

243+
-spec keydir_itr_release(reference()) ->
244+
ok.
279245
keydir_itr_release(_Ref) ->
280246
erlang:nif_error({error, not_loaded}).
281247

248+
-spec increment_file_id(reference()) ->
249+
{ok, non_neg_integer()}.
282250
increment_file_id(_Ref) ->
283251
erlang:nif_error({error, not_loaded}).
284252

253+
-spec increment_file_id(reference(), non_neg_integer()) ->
254+
{ok, non_neg_integer()}.
285255
increment_file_id(_Ref, _ConditionalFileId) ->
286256
erlang:nif_error({error, not_loaded}).
287257

258+
-spec keydir_fold(reference(), fun((any(), any()) -> any()), any(),
259+
integer(), integer()) ->
260+
any() | {error, any()}.
288261
keydir_fold(Ref, Fun, Acc0, MaxAge, MaxPuts) ->
289262
FrozenFun = fun() -> keydir_fold_cont(keydir_itr_next(Ref), Ref, Fun, Acc0) end,
290263
keydir_frozen(Ref, FrozenFun, MaxAge, MaxPuts).
@@ -308,7 +281,7 @@ keydir_frozen(Ref, FrozenFun, MaxAge, MaxPuts) ->
308281
{error, Reason} ->
309282
{error, Reason}
310283
end.
311-
284+
312285
%% Wait for any pending interation to complete
313286
keydir_wait_pending(Ref) ->
314287
%% Create an iterator, passing a zero timestamp to force waiting for
@@ -357,44 +330,71 @@ keydir_wait_ready() ->
357330
end.
358331
-endif.
359332

333+
-spec keydir_info(reference()) ->
334+
{integer(), integer(),
335+
[{integer(), integer(), integer(), integer(), integer(),
336+
integer(), integer(), integer()}],
337+
{integer(), integer(), boolean(), 'undefined'|integer()},
338+
non_neg_integer()}.
360339
keydir_info(_Ref) ->
361340
erlang:nif_error({error, not_loaded}).
362341

342+
-spec keydir_release(reference()) ->
343+
ok.
363344
keydir_release(_Ref) ->
364345
erlang:nif_error({error, not_loaded}).
365346

347+
-spec keydir_trim_fstats(reference(), [integer()]) ->
348+
{ok, integer()} | {error, atom()}.
366349
keydir_trim_fstats(_Ref, _IDList) ->
367350
erlang:nif_error({error, not_loaded}).
368351

352+
-spec update_fstats(reference(), non_neg_integer(), non_neg_integer(),
353+
integer(), integer(), integer(), integer(), integer() ) ->
354+
ok.
369355
update_fstats(_Ref, _FileId, _Tstamp,
370356
_LiveKeyIncr, _TotalKeyIncr,
371357
_LiveIncr, _TotalIncr, _ShouldCreate) ->
372358
erlang:nif_error({error, not_loaded}).
373359

360+
-spec set_pending_delete(reference(), non_neg_integer()) ->
361+
ok.
374362
set_pending_delete(_Ref, _FileId) ->
375363
erlang:nif_error({error, not_loaded}).
376364

365+
-spec lock_acquire(string(), integer()) ->
366+
{ok, reference()} | {error, atom()}.
377367
lock_acquire(Filename, IsWriteLock) ->
378368
bitcask_bump:big(),
379369
lock_acquire_int(Filename, IsWriteLock).
380370

381371
lock_acquire_int(_Filename, _IsWriteLock) ->
382372
erlang:nif_error({error, not_loaded}).
383373

374+
-spec lock_release(reference()) ->
375+
ok.
384376
lock_release(Ref) ->
385377
bitcask_bump:big(),
386378
lock_release_int(Ref).
387379

388380
lock_release_int(_Ref) ->
389381
erlang:nif_error({error, not_loaded}).
390382

383+
-spec lock_readdata(reference()) ->
384+
{ok, binary()} |
385+
{fstat_error, integer()} | {error, allocation_error} |
386+
{pread_error, integer()}.
391387
lock_readdata(Ref) ->
392388
bitcask_bump:big(),
393389
lock_readdata_int(Ref).
394390

395391
lock_readdata_int(_Ref) ->
396392
erlang:nif_error({error, not_loaded}).
397393

394+
-spec lock_writedata(reference(), binary()) ->
395+
ok |
396+
{ftruncate_error, errno_atom()} | {pwrite_error, errno_atom()} |
397+
{error, lock_not_writable}.
398398
lock_writedata(Ref, Data) ->
399399
bitcask_bump:big(),
400400
lock_writedata_int(Ref, Data).
@@ -610,7 +610,7 @@ keydir_del_while_pending_test2() ->
610610
ok = keydir_put(Ref1, Key, 0, 1234, 0, T, bitcask_time:tstamp()),
611611
keydir_mark_ready(Ref1),
612612
?assertEqual(#bitcask_entry{key = Key, file_id = 0, total_sz = 1234,
613-
offset = <<0:64/unsigned-native>>, tstamp = T},
613+
offset = <<0:64/unsigned-native>>, tstamp = T},
614614
keydir_get_int(Ref1, Key, 16#ffffffffffffffff)),
615615
{ready, Ref2} = keydir_new(Name),
616616
try
@@ -623,7 +623,7 @@ keydir_del_while_pending_test2() ->
623623
%% Keep iterating on Ref2 and check result is [Key]
624624
Fun = fun(IterKey, Acc) -> [IterKey | Acc] end,
625625
?assertEqual([#bitcask_entry{key = Key, file_id = 0, total_sz = 1234,
626-
offset = 0, tstamp = T}],
626+
offset = 0, tstamp = T}],
627627
keydir_fold_cont(keydir_itr_next(Ref2), Ref2, Fun, []))
628628
after
629629
%% End iteration
@@ -647,7 +647,7 @@ keydir_create_del_while_pending_test2() ->
647647
%% Delete Key
648648
ok = keydir_put(Ref1, Key, 0, 1234, 0, 1, bitcask_time:tstamp()),
649649
?assertEqual(#bitcask_entry{key = Key, file_id = 0, total_sz = 1234,
650-
offset = <<0:64/unsigned-native>>, tstamp = 1},
650+
offset = <<0:64/unsigned-native>>, tstamp = 1},
651651
keydir_get_int(Ref1, Key, 16#ffffffffffffffff)),
652652
?assertEqual(ok, keydir_remove(Ref1, Key)),
653653
?assertEqual(not_found, keydir_get(Ref1, Key)),
@@ -682,7 +682,7 @@ keydir_del_put_while_pending_test2() ->
682682
?assertEqual(ok, keydir_remove(Ref1, Key)),
683683
ok = keydir_put(Ref1, Key, 0, 1234, 0, T+2, bitcask_time:tstamp()),
684684
?assertEqual(#bitcask_entry{key = Key, file_id = 0, total_sz = 1234,
685-
offset = <<0:64/unsigned-native>>, tstamp = T+2},
685+
offset = <<0:64/unsigned-native>>, tstamp = T+2},
686686
keydir_get_int(Ref1, Key, T+2)),
687687

688688
%% Keep iterating on Ref2 and check result is [] it was started after iter
@@ -694,7 +694,7 @@ keydir_del_put_while_pending_test2() ->
694694
end,
695695
%% Check key is still present
696696
?assertEqual(#bitcask_entry{key = Key, file_id = 0, total_sz = 1234,
697-
offset = <<0:64/unsigned-native>>, tstamp = T+2},
697+
offset = <<0:64/unsigned-native>>, tstamp = T+2},
698698
keydir_get_int(Ref1, Key, 16#ffffffffffffffff)).
699699

700700
keydir_multi_put_during_itr_test_() ->
@@ -742,7 +742,7 @@ put_till_frozen(R, Name) ->
742742
%%?debugFmt("keydir still OK", []),
743743
bitcask_nifs:keydir_itr_release(Ref2),
744744
put_till_frozen(R, Name);
745-
out_of_date ->
745+
out_of_date ->
746746
%%?debugFmt("keydir now frozen", []),
747747
bitcask_nifs:keydir_itr_release(Ref2),
748748
ok
@@ -782,7 +782,7 @@ keydir_itr_many_pending_test2() ->
782782

783783
clear_recv_buffer(Ct) ->
784784
receive
785-
_ ->
785+
_ ->
786786
clear_recv_buffer(Ct+1)
787787
after 0 ->
788788
ok %%?debugFmt("cleared ~p msgs", [Ct])

0 commit comments

Comments
 (0)