let wrap_channel
shard_id
string_of_read_message
string_of_written_message
channel =
let debug_communication = false in
if debug_communication then begin
let debugf fmt =
Printf.ksprintf
(fun s ->
if debug_communication then
prerr_endline ("D("^shard_id^"): "^s))
fmt
in
let send_data msg =
debugf "Sending message %S" (string_of_written_message msg);
channel.send_data msg;
debugf "Message transmitted, continuing."
in
let receive_data () =
let () = debugf "Waiting to receive data." in
let msg = channel.receive_data () in
debugf "Received message %S" (string_of_read_message msg);
msg
in
{
send_data = send_data;
receive_data = receive_data;
close = channel.close;
}
end else begin
channel
end