public override int Encode(byte[] buffer, int offset)
{
var written = offset;
written += Write(buffer, written, ConnectionId);
written += Write(buffer, written, Action);
written += Write(buffer, written, TransactionId);
written += Write(buffer, written, Infohash.Hash, 0, Infohash.Hash.Length);
written += WriteAscii(buffer, written, PeerId);
written += Write(buffer, written, Downloaded);
written += Write(buffer, written, Left);
written += Write(buffer, written, Uploaded);
written += Write(buffer, written, (int) TorrentEvent);
written += Write(buffer, written, Ip);
written += Write(buffer, written, Key);
written += Write(buffer, written, NumWanted);
written += Write(buffer, written, Port);
return written - offset;
}
}