1212 open /2 ,
1313 position /2 ,
1414 pread /3 ,
15- prim_delete /1 ,
1615 read /2 ,
1716 read_file_info /1 ,
1817 sendfile /5 ,
@@ -178,16 +177,6 @@ delete(File) ->
178177 Mod = get_mod (),
179178 Mod :delete (File ).
180179
181-
182- -spec prim_delete (Filename ) -> ok | {error , Reason } when
183- Filename :: file :name_all (),
184- Reason :: file :posix () | badarg .
185-
186- prim_delete (File ) ->
187- Mod = get_mod (prim_file , File ),
188- Mod :delete (File ).
189-
190-
191180-spec ensure_dir (Name ) -> ok | {error , Reason } when
192181 Name :: file :name_all (),
193182 Reason :: file :posix ().
@@ -204,7 +193,7 @@ ensure_dir(Dir) ->
204193 | {no_translation , Filename :: unicode :latin1_binary ()}.
205194% % TODO
206195list_dir (Dir ) ->
207- Mod = get_mod (prim_file ),
196+ Mod = get_mod (),
208197 Mod :list_dir (Dir ).
209198
210199
@@ -281,7 +270,7 @@ read(Handle, Size) ->
281270 Reason :: file :posix () | badarg .
282271% % Todo
283272read_file_info (File ) ->
284- Mod = get_mod (prim_file , File ),
273+ Mod = get_mod (File ),
285274 Mod :read_file_info (File ).
286275
287276
@@ -316,47 +305,33 @@ truncate(Handle) ->
316305 Bytes :: iodata (),
317306 Reason :: file :posix () | badarg | terminated .
318307write ({Mod , Handle }, Data ) ->
319- Mod :write (Handle , Data );
308+ Mod :write (Handle , Data ),
309+ try_write (Mod , Handle , Data );
320310write (Handle , Data ) ->
321311 ? DEFAULT_FILE :write (Handle , Data ).
322312
323- % % -spec try_write(module(), term(), iodata()) ->
324- % % ok | {error, term()}.
325- % % try_write(Mod, Handle, Data) ->
326- % % case erlang:function_exported(Mod, write, 2) of
327- % % true ->
328- % % Mod:write(Handle, Data);
329- % % false ->
330- % % file:write(Handle, Data)
331- % % end.
313+
314+ -spec try_write (module (), term (), iodata ()) ->
315+ ok | {error , term ()}.
316+ try_write (Mod , Handle , Data ) ->
317+ case erlang :function_exported (Mod , write , 2 ) of
318+ true ->
319+ Mod :write (Handle , Data );
320+ false ->
321+ ? DEFAULT_FILE :write (Handle , Data )
322+ end .
332323
333324
334325% % TODO code below just hack to make it work for now.
335326-spec get_mod () -> module ().
336327
337328get_mod () ->
338- ? DEFAULT_FILE ;
329+ ? DEFAULT_FILE .
339330
340- get_mod (prim_file ) ->
341- % % Just temporary solutin till I figure out why
342- % % we even use prim_file?
343- % % prim_file;
344- ? DEFAULT_FILE ;
345331get_mod (File ) ->
346332 case filelib :is_file (File ) of
347333 true ->
348334 ? DEFAULT_FILE ;
349335 false ->
350336 application :get_env (osiris , io_segment_module , ? DEFAULT_FILE )
351337 end .
352-
353-
354- get_mod (prim_file , File ) ->
355- % % Just temporary solutin till I figure out why
356- % % we even use prim_file?
357- case filelib :is_file (File ) of
358- true ->
359- ? DEFAULT_FILE ;
360- false ->
361- application :get_env (osiris , io_segment_module , ? DEFAULT_FILE )
362- end .
0 commit comments