diff options
| author | Matthew Sackman <matthew@lshift.net> | 2009-10-30 13:39:08 +0000 |
|---|---|---|
| committer | Matthew Sackman <matthew@lshift.net> | 2009-10-30 13:39:08 +0000 |
| commit | 2c8ccb231bd7dcc635bc8e2b6c866a052c33c0fb (patch) | |
| tree | 5c1bd1d20451ec63948f98fd1b02a6bf0d8586ae | |
| parent | 62e8bcdaaa9855f6c016bb0f8e5520066059584a (diff) | |
| download | rabbitmq-server-git-2c8ccb231bd7dcc635bc8e2b6c866a052c33c0fb.tar.gz | |
Added specs to fhc
| -rw-r--r-- | src/file_handle_cache.erl | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/src/file_handle_cache.erl b/src/file_handle_cache.erl index d2b0ba2e6b..fe4e90774d 100644 --- a/src/file_handle_cache.erl +++ b/src/file_handle_cache.erl @@ -32,7 +32,7 @@ -module(file_handle_cache). -export([open/3, close/1, read/2, append/2, sync/1, position/2, truncate/1, - last_sync_offset/1]). + last_sync_offset/1, append_write_buffer/1]). %%---------------------------------------------------------------------------- @@ -60,6 +60,30 @@ }). %%---------------------------------------------------------------------------- +%% Specs + +-ifdef(use_specs). + +-type(ref() :: any()). +-type(error() :: {'error', any()}). +-type(ok_or_error() :: ('ok' | error())). +-type(position() :: ('bof' | 'eof' | {'bof',integer()} | {'eof',integer()} + | {'cur',integer()} | integer())). + +-spec(open/3 :: (string(), [any()], [any()]) -> ({'ok', ref()} | error())). +-spec(close/1 :: (ref()) -> ('ok' | error())). +-spec(read/2 :: (ref(), integer()) -> + ({'ok', ([char()]|binary())} | eof | error())). +-spec(append/2 :: (ref(), iodata()) -> ok_or_error()). +-spec(sync/1 :: (ref()) -> ok_or_error()). +-spec(position/2 :: (ref(), position()) -> ok_or_error()). +-spec(truncate/1 :: (ref()) -> ok_or_error()). +-spec(last_sync_offset/1 :: (ref()) -> ({'ok', integer()} | error())). +-spec(append_write_buffer/1 :: (ref()) -> ok_or_error()). + +-endif. + +%%---------------------------------------------------------------------------- %% Public API open(Path, Mode, Options) -> @@ -247,6 +271,15 @@ last_sync_offset(Ref) -> Error -> Error end. +append_write_buffer(Ref) -> + case get_or_reopen(Ref) of + {ok, Handle} -> + {Result, Handle1} = write_buffer(Handle), + put({Ref, fhc_handle}, Handle1), + Result; + Error -> Error + end. + %%---------------------------------------------------------------------------- %% Internal functions %%---------------------------------------------------------------------------- |
