protected internal virtual void sendBuf(Erlang.Pid from, Erlang.Pid dest, OtpOutputStream payload)
{
if (!connected)
{
throw new System.IO.IOException("Not connected");
}
OtpOutputStream header = new OtpOutputStream(headerLen);
// preamble: 4 byte length + "passthrough" tag + version
header.write4BE(0); // reserve space for length
header.write1(passThrough);
header.write1(OtpExternal.versionTag);
// header info
header.write_tuple_head(3);
header.write_long((long)OtpMsg.Tag.sendTag);
if (sendCookie)
header.write_atom(auth_cookie);
else
header.write_atom("");
header.write_any(dest);
// version for payload
header.write1(OtpExternal.versionTag);
// fix up length in preamble
header.poke4BE(0, header.count() + payload.count() - 4);
do_send(header, payload);
}