Created
February 28, 2016 17:09
-
-
Save CharlesOkwuagwu/14a204edb867ef82ed9d to your computer and use it in GitHub Desktop.
too many warnings
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
defp send_messages(msg_list, s, do_timer_reset) do | |
if do_timer_reset do | |
if s.acks != [] do | |
ids = s.acks | |
s = %{s | acks: []} | |
log "adding acks: #{inspect ids}" | |
msg_list = msg_list ++ [{TL.msgs_ack(ids), false}] | |
end | |
# if s.resends != [] do | |
# ids = s.resends | |
# s = %{s | resends: []} | |
# log "adding resends: #{inspect ids}" | |
# msg_list = msg_list ++ [{TL.msg_resend_req(ids), false}] | |
# end | |
:timer.cancel(s.ack_timer) | |
end | |
if length(msg_list) > 1 do | |
{content_count, prev_msg_id, msg} = pack_messages(msg_list, 0, "", s.content_count, s.prev_msg_id) | |
send_enc(seq_no(content_count, false), message_id(prev_msg_id + 8), content_count, msg, s) | |
else | |
{msg, is_content} = hd(msg_list) | |
if is_content == true do | |
send_enc(seq_no(s.content_count, true), message_id(s.prev_msg_id + 8), s.content_count + 1, msg, s) | |
else | |
send_enc(seq_no(s.content_count, false), message_id(s.prev_msg_id + 8), s.content_count, msg, s) | |
end | |
end | |
end |
josevalim
commented
Feb 28, 2016
Just use functions and pattern matching, it'll be cleaner.
defp send_messages(msg_list, s, do_timer_reset) do
if do_timer_reset do
{s, msg_list} = transform_acks(s)
if s.acks != [] do
end
# if s.resends != [] do
# ids = s.resends
# s = %{s | resends: []}
# log "adding resends: #{inspect ids}"
# msg_list = msg_list ++ [{TL.msg_resend_req(ids), false}]
# end
:timer.cancel(s.ack_timer)
end
process_messages(msg_list)
end
defp transform_acks(%{acks: []} = s), do: {s, []}
defp transform_acks(%{acks: acks} = s) do
ids = s.acks
s = %{s | acks: []}
log "adding acks: #{inspect ids}"
{s, msg_list ++ [{TL.msgs_ack(ids), false}]}
end
defp process_messages([{msg, is_content}]) do
if is_content do
send_enc(seq_no(s.content_count, true), message_id(s.prev_msg_id + 8), s.content_count + 1, msg, s)
else
send_enc(seq_no(s.content_count, false), message_id(s.prev_msg_id + 8), s.content_count, msg, s)
end
end
defp process_messages(msg_list) do
{content_count, prev_msg_id, msg} = pack_messages(msg_list, 0, "", s.content_count, s.prev_msg_id)
send_enc(seq_no(content_count, false), message_id(prev_msg_id + 8), content_count, msg, s)
end
No more warnings, and I guess it's a bit cleaner :)
defp send_messages(msg_list, s, true) do
{s, msg_list} =
if s.acks != [] do
log "adding acks: #{inspect s.acks}"
{%{s | acks: []}, msg_list ++ [{TL.msgs_ack(s.acks), false}]}
else
{s, msg_list}
end
# if s.resends != [] do
# ids = s.resends
# s = %{s | resends: []}
# log "adding resends: #{inspect ids}"
# msg_list = msg_list ++ [{TL.msg_resend_req(ids), false}]
# end
:timer.cancel(s.ack_timer)
send_messages(msg_list, s, false)
end
defp send_messages([{msg, true}], s, false) do
send_enc(seq_no(s.content_count, true), message_id(s.prev_msg_id + 8), s.content_count + 1, msg, s)
end
defp send_messages([{msg, false}], s, false) do
send_enc(seq_no(s.content_count, false), message_id(s.prev_msg_id + 8), s.content_count, msg, s)
end
defp send_messages(msg_list, s, false) do
{content_count, prev_msg_id, msg} = pack_messages(msg_list, 0, "", s.content_count, s.prev_msg_id)
send_enc(seq_no(content_count, false), message_id(prev_msg_id + 8), content_count, msg, s)
end
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment