Ticket #1715: session_stats.patch

File session_stats.patch, 4.2 KB (added by Elbandi, 12 years ago)
  • libtransmission/rpcimpl.c

    diff --git a/libtransmission/rpcimpl.c b/libtransmission/rpcimpl.c
    index fdc760f..6f01772 100644
    a b  
    2222#include "session.h"
    2323#include "torrent.h"
    2424#include "utils.h"
     25#include "stats.h"
    2526
    2627#define TR_N_ELEMENTS( ary ) ( sizeof( ary ) / sizeof( *ary ) )
    2728
    sessionStats( tr_session * session, 
    691692{
    692693    int running = 0;
    693694    int total = 0;
     695    tr_benc * d;
     696    tr_session_stats currentstats = { 0.0f, 0, 0, 0, 0, 0 };
     697    tr_session_stats cumulativestats = { 0.0f, 0, 0, 0, 0, 0 };
    694698    tr_torrent * tor = NULL;
    695699
    696700    while(( tor = tr_torrentNext( session, tor ))) {
    sessionStats( tr_session * session, 
    699703            ++running;
    700704    }
    701705
     706    tr_sessionGetStats( session, &currentstats );
     707    tr_sessionGetCumulativeStats( session, &cumulativestats );
     708
    702709    tr_bencDictAddInt( args_out, "activeTorrentCount", running );
    703710    tr_bencDictAddInt( args_out, "downloadSpeed", (int)( tr_sessionGetPieceSpeed( session, TR_DOWN ) * 1024 ) );
    704711    tr_bencDictAddInt( args_out, "pausedTorrentCount", total - running );
    705712    tr_bencDictAddInt( args_out, "torrentCount", total );
    706713    tr_bencDictAddInt( args_out, "uploadSpeed", (int)( tr_sessionGetPieceSpeed( session, TR_UP ) * 1024 ) );
     714
     715    d = tr_bencDictAddDict( args_out, "cumulative-stats", 5 );
     716    tr_bencDictAddInt( d, "uploadedBytes", cumulativestats.uploadedBytes );
     717    tr_bencDictAddInt( d, "downloadedBytes", cumulativestats.downloadedBytes );
     718    tr_bencDictAddInt( d, "filesAdded", cumulativestats.filesAdded );
     719    tr_bencDictAddInt( d, "sessionCount", cumulativestats.sessionCount );
     720    tr_bencDictAddInt( d, "secondsActive", cumulativestats.secondsActive );
     721
     722    d = tr_bencDictAddDict( args_out, "current-stats", 5 );
     723    tr_bencDictAddInt( d, "uploadedBytes", currentstats.uploadedBytes );
     724    tr_bencDictAddInt( d, "downloadedBytes", currentstats.downloadedBytes );
     725    tr_bencDictAddInt( d, "filesAdded", currentstats.filesAdded );
     726    tr_bencDictAddInt( d, "sessionCount", currentstats.sessionCount );
     727    tr_bencDictAddInt( d, "secondsActive", currentstats.secondsActive );
     728
    707729    return NULL;
    708730}
    709731
  • doc/rpc-spec.txt

    diff --git a/doc/rpc-spec.txt b/doc/rpc-spec.txt
    index e02df64..51962e8 100644
    a b  
    362362   "pausedTorrentCount"       | number
    363363   "torrentCount"             | number
    364364   "uploadSpeed"              | number
     365   ---------------------------+-------------------------------+
     366   "cumulative-stats"         | object, containing:           |
     367                              +------------------+------------+
     368                              | uploadedBytes    | number     | tr_session_stats
     369                              | downloadedBytes  | number     | tr_session_stats
     370                              | filesAdded       | number     | tr_session_stats
     371                              | sessionCount     | number     | tr_session_stats
     372                              | secondsActive    | number     | tr_session_stats
     373   ---------------------------+-------------------------------+
     374   "current-stats"            | object, containing:           |
     375                              +------------------+------------+
     376                              | uploadedBytes    | number     | tr_session_stats
     377                              | downloadedBytes  | number     | tr_session_stats
     378                              | filesAdded       | number     | tr_session_stats
     379                              | sessionCount     | number     | tr_session_stats
     380                              | secondsActive    | number     | tr_session_stats
    365381   
    366382
    3673835.0.  Protocol Versions
     
    382398   ------+---------+-----------+----------------+-------------------------------
    383399   4     | 1.50    | yes       | session-get    | new arg "rpc-version"
    384400         |         |           | session-get    | new arg "rpc-version-minimum"
     401         |         |           | session-stats  | added "cumulative-stats"
     402         |         |           | session-stats  | added "current-stats"
    385403         |         |           | torrent-get    | new arg "downloadDir"
    386404   ------+---------+-----------+----------------+-------------------------------
    387405