public int Send(ISerializable message, DeliveryOptions deliveryOptions, Guid peer) { var stream = _shamanStreamPool.Rent(message.GetType()); try { _serializer.Serialize(message, stream); _roomSender.Send(new Payload(stream.GetBuffer()), deliveryOptions, peer); return((int)stream.Length); } finally { _shamanStreamPool.Return(stream, message.GetType()); } }
public int Send(ISerializable message, DeliveryOptions deliveryOptions, IPeerSender peer) { var stream = _shamanStreamPool.Rent(message.GetType()); try { _serializer.Serialize(message, stream); _packetSender.AddPacket(peer, deliveryOptions, new Payload(stream.GetBuffer())); return((int)stream.Length); } finally { _shamanStreamPool.Return(stream, message.GetType()); } }