Skip to content

Commit

Permalink
* MonoTorrent/MonoTorrent.Client/PeerIO.cs:
Browse files Browse the repository at this point in the history
* MonoTorrent/MonoTorrent.Client/NetworkIO/ReceiveMessageState.cs:
  Ensure that the amount of data sent/received in the body of the
  message is recorded.

svn path=/trunk/bitsharp/; revision=156063
  • Loading branch information
alanmcgovern committed Apr 25, 2010
1 parent ad49efd commit 47d2872
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 7 deletions.
Expand Up @@ -52,25 +52,40 @@ class ReceiveMessageState : ICacheable
get; set;
}

public IRateLimiter RateLimiter {
get; set;
}

public TorrentManager Manager {
get; private set;
}

public ConnectionMonitor ManagerMonitor {
get; set;
}

public ConnectionMonitor PeerMonitor {
get; set;
}

public object State {
get; private set;
}

public void Initialise ()
{
Initialise (null, null, null, null, null, null);
Initialise (null, null, null, null, null, null, null, null);
}

public ReceiveMessageState Initialise (IConnection connection, IEncryption decryptor, TorrentManager manager, byte[] buffer, AsyncMessageReceivedCallback callback, object state)
public ReceiveMessageState Initialise (IConnection connection, IEncryption decryptor, IRateLimiter limiter, ConnectionMonitor peerMonitor, TorrentManager manager, byte[] buffer, AsyncMessageReceivedCallback callback, object state)
{
Connection = connection;
Decryptor = decryptor;
Manager = manager;
Buffer = buffer;
PeerMonitor = peerMonitor;
RateLimiter = limiter;
ManagerMonitor = manager == null ? null : manager.Monitor;
Callback = callback;
State = state;
return this;
Expand Down
10 changes: 5 additions & 5 deletions src/MonoTorrent/MonoTorrent.Client/PeerIO.cs
Expand Up @@ -71,7 +71,7 @@ static void EndSend (bool successful, int count, object state)
public static void EnqueueReceiveHandshake (IConnection connection, IEncryption decryptor, AsyncMessageReceivedCallback callback, object state)
{
var buffer = ClientEngine.BufferManager.GetBuffer (HandshakeMessage.HandshakeLength);
var data = receiveCache.Dequeue ().Initialise (connection, decryptor, null, buffer, callback, state);
var data = receiveCache.Dequeue ().Initialise (connection, decryptor, null, null, null, buffer, callback, state);
NetworkIO.EnqueueReceive (connection, buffer, 0, HandshakeMessage.HandshakeLength, null, null, null, HandshakeReceivedCallback, data);
}

Expand All @@ -96,8 +96,8 @@ public static void EnqueueReceiveMessage (IConnection connection, IEncryption de
// FIXME: Hardcoded number
int count = 4;
var buffer = ClientEngine.BufferManager.GetBuffer (count);
var data = receiveCache.Dequeue ().Initialise (connection, decryptor, manager, buffer, callback, state);
NetworkIO.EnqueueReceive (connection, buffer, 0, count, rateLimiter, monitor, manager == null ? null : manager.Monitor, MessageLengthReceivedCallback, data);
var data = receiveCache.Dequeue ().Initialise (connection, decryptor, rateLimiter, monitor, manager, buffer, callback, state);
NetworkIO.EnqueueReceive (connection, buffer, 0, count, rateLimiter, monitor, data.ManagerMonitor, MessageLengthReceivedCallback, data);
}

static void MessageLengthReceived (bool successful, int transferred, object state)
Expand Down Expand Up @@ -129,8 +129,8 @@ static void MessageLengthReceived (bool successful, int transferred, object stat
ClientEngine.BufferManager.FreeBuffer (data.Buffer);
data.Buffer = buffer;

NetworkIO.EnqueueReceive (data.Connection, buffer, transferred, messageLength, null, null, null,
MessageBodyReceivedCallback, data);
NetworkIO.EnqueueReceive (data.Connection, buffer, transferred, messageLength, data.RateLimiter, data.PeerMonitor,
data.ManagerMonitor, MessageBodyReceivedCallback, data);
}

static void MessageBodyReceived (bool successful, int transferred, object state)
Expand Down

0 comments on commit 47d2872

Please sign in to comment.