Skip to content

Commit

Permalink
refactoring.
Browse files Browse the repository at this point in the history
  • Loading branch information
VEINHORN committed Jan 28, 2015
1 parent b28d5cc commit c5ff034
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 25 deletions.
13 changes: 1 addition & 12 deletions client.erl
Original file line number Diff line number Diff line change
Expand Up @@ -27,18 +27,7 @@ switch_command(Socket, Filename, Offset, Command) ->
ClientOffset = filelib:file_size(?CLIENT_FOLDER ++ Filename),
gen_tcp:send(Socket, <<?APPROVEMENT:8/integer, ClientOffset:32/integer>>),
{ok, IoDevice} = file:open(?CLIENT_FOLDER ++ Filename, [append]),
wait_for_file(Socket, IoDevice)
end.

wait_for_file(Socket, IoDevice) ->
case gen_tcp:recv(Socket, 0) of
{ok, <<?SENDING:8/integer, Packet/binary>>} ->
file:write(IoDevice, Packet),
wait_for_file(Socket, IoDevice);
{ok, <<?DOWNLOADED:8/integer>>} ->
io:format("File was downloaded.~n");
{ok, <<?FILE_NOT_EXIST:8/integer>>} ->
io:format("File does not exist.~n")
utils:wait_for_file(Socket, IoDevice)
end.

wait_for_command(Socket) ->
Expand Down
13 changes: 1 addition & 12 deletions server.erl
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ handle(Socket) ->
[Filename, Offset] = utils:get_file_info(Packet),
gen_tcp:send(Socket, [<<Offset:32/integer, ?UPLOAD:8/integer>>, Filename]),
{ok, IoDevice} = file:open(?SERVER_FOLDER ++ Filename, [append]),
wait_for_file(Socket, IoDevice),
utils:wait_for_file(Socket, IoDevice),
handle(Socket);
{ok, <<"EXIT\n">>} ->
gen_tcp:close(Socket);
Expand All @@ -45,14 +45,3 @@ wait_for_approvement(Socket, Filename) ->
{error, timeout} ->
ok
end.

wait_for_file(Socket, IoDevice) ->
case gen_tcp:recv(Socket, 0) of
{ok, <<?SENDING:8/integer, Packet/binary>>} ->
file:write(IoDevice, Packet),
wait_for_file(Socket, IoDevice);
{ok, <<?FILE_NOT_EXIST:8/integer>>} ->
io:format("File not found.~n");
{ok, <<?DOWNLOADED:8/integer>>} ->
io:format("File received.~n")
end.
13 changes: 12 additions & 1 deletion utils.erl
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
-module(utils).
-include("config.hrl").
-export([delete_n/1, get_file_info/1, send_file/4, send_file_binary/3]).
-export([delete_n/1, get_file_info/1, send_file/4, send_file_binary/3, wait_for_file/2]).

delete_n(Str) ->
string:substr(Str, 1, string:len(Str) - 1).
Expand Down Expand Up @@ -28,3 +28,14 @@ send_file_binary(Socket, IoDevice, Offset) ->
io:format("File was sent.~n"),
gen_tcp:send(Socket, <<?DOWNLOADED:8/integer>>)
end.

wait_for_file(Socket, IoDevice) ->
case gen_tcp:recv(Socket, 0) of
{ok, <<?SENDING:8/integer, Packet/binary>>} ->
file:write(IoDevice, Packet),
wait_for_file(Socket, IoDevice);
{ok, <<?DOWNLOADED:8/integer>>} ->
io:format("File was downloaded.~n");
{ok, <<?FILE_NOT_EXIST:8/integer>>} ->
io:format("File does not exist.~n")
end.

0 comments on commit c5ff034

Please sign in to comment.