Ignore:
Timestamp:
Apr 12, 2007, 2:41:19 PM (15 years ago)
Author:
joshe
Message:

Minor cleanup of client code.
Display ratio in transmission-remote -l output.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/daemon/daemon/client.c

    r1696 r1708  
    7676{
    7777    int64_t            tag;
    78     cl_listfunc        listcb;
    7978    cl_infofunc        infocb;
    80     cl_hashfunc        hashcb;
    8179    cl_statfunc        statcb;
    8280    RB_ENTRY( resp )   links;
     
    546544
    547545int
    548 client_list( cl_listfunc func )
     546client_list( cl_infofunc func )
    549547{
    550548    struct req  * req;
     
    557555    }
    558556
    559     resp->listcb = func;
     557    resp->infocb = func;
    560558    req->types   = IPC_INF_NAME | IPC_INF_HASH;
    561559
     
    582580
    583581int
    584 client_hashids( cl_hashfunc func )
     582client_hashids( cl_infofunc func )
    585583{
    586584    struct req  * req;
     
    593591    }
    594592
    595     resp->hashcb = func;
     593    resp->infocb = func;
    596594    req->types   = IPC_INF_HASH;
    597595
     
    613611    resp->statcb = func;
    614612    req->types   = IPC_ST_STATE | IPC_ST_ETA | IPC_ST_COMPLETED |
    615         IPC_ST_DOWNSPEED | IPC_ST_UPSPEED | IPC_ST_ERROR | IPC_ST_ERRMSG;
     613        IPC_ST_DOWNSPEED | IPC_ST_UPSPEED | IPC_ST_DOWNTOTAL | IPC_ST_UPTOTAL |
     614        IPC_ST_ERROR | IPC_ST_ERRMSG;
    616615
    617616    return 0;
     
    869868         void * arg UNUSED )
    870869{
    871     benc_val_t  * dict;
    872     int           ii;
    873     int64_t       id, size;
    874     char        * name, * hash;
    875     struct resp * resp, key;
     870    benc_val_t   * dict;
     871    int            ii;
     872    struct cl_info inf;
     873    int64_t        id;
     874    struct resp  * resp, key;
    876875
    877876    assert( IPC_MSG_INFO == msgid );
    878877
    879     if( TYPE_LIST != list->type )
     878    if( TYPE_LIST != list->type || NULL == resp->infocb )
    880879    {
    881880        return;
     
    899898        }
    900899
    901         id   = getinfoint( msgid, dict, IPC_INF_ID,   -1   );
    902         name = getinfostr( msgid, dict, IPC_INF_NAME, NULL );
    903         hash = getinfostr( msgid, dict, IPC_INF_HASH, NULL );
    904         size = getinfoint( msgid, dict, IPC_INF_SIZE, -1   );
     900        id       = getinfoint( msgid, dict, IPC_INF_ID,   -1   );
     901        inf.name = getinfostr( msgid, dict, IPC_INF_NAME, NULL );
     902        inf.hash = getinfostr( msgid, dict, IPC_INF_HASH, NULL );
     903        inf.size = getinfoint( msgid, dict, IPC_INF_SIZE, -1   );
    905904
    906905        if( !TORRENT_ID_VALID( id ) )
     
    909908        }
    910909
    911         if( NULL != resp->infocb )
    912         {
    913             resp->infocb( id, name, size );
    914         }
    915         else if( NULL != resp->listcb )
    916         {
    917             resp->listcb( id, name, hash );
    918         }
    919         else if( NULL != resp->hashcb )
    920         {
    921             resp->hashcb( id, hash );
    922         }
     910        inf.id = id;
     911        resp->infocb( &inf );
    923912    }
    924913
     
    931920         void * arg UNUSED )
    932921{
    933     benc_val_t  * dict;
    934     int           ii;
    935     int64_t       id, eta, done, down, up;
    936     char        * state, * error, * errmsg;
    937     struct resp * resp, key;
     922    benc_val_t   * dict;
     923    int            ii;
     924    int64_t        id;
     925    struct cl_stat st;
     926    struct resp  * resp, key;
    938927
    939928    assert( IPC_MSG_STAT == msgid );
    940929
    941     if( TYPE_LIST != list->type )
     930    if( TYPE_LIST != list->type || NULL == resp->statcb )
    942931    {
    943932        return;
     
    961950        }
    962951
    963         id     = getinfoint( msgid, dict, IPC_ST_ID,        -1   );
    964         state  = getinfostr( msgid, dict, IPC_ST_STATE,     NULL );
    965         eta    = getinfoint( msgid, dict, IPC_ST_ETA,       -1   );
    966         done   = getinfoint( msgid, dict, IPC_ST_COMPLETED, -1   );
    967         down   = getinfoint( msgid, dict, IPC_ST_DOWNSPEED, -1   );
    968         up     = getinfoint( msgid, dict, IPC_ST_UPSPEED,   -1   );
    969         error  = getinfostr( msgid, dict, IPC_ST_ERROR,     NULL );
    970         errmsg = getinfostr( msgid, dict, IPC_ST_ERRMSG,    NULL );
     952        id           = getinfoint( msgid, dict, IPC_ST_ID,        -1   );
     953        st.state     = getinfostr( msgid, dict, IPC_ST_STATE,     NULL );
     954        st.eta       = getinfoint( msgid, dict, IPC_ST_ETA,       -1   );
     955        st.done      = getinfoint( msgid, dict, IPC_ST_COMPLETED, -1   );
     956        st.ratedown  = getinfoint( msgid, dict, IPC_ST_DOWNSPEED, -1   );
     957        st.rateup    = getinfoint( msgid, dict, IPC_ST_UPSPEED,   -1   );
     958        st.totaldown = getinfoint( msgid, dict, IPC_ST_DOWNTOTAL, -1   );
     959        st.totalup   = getinfoint( msgid, dict, IPC_ST_UPTOTAL,   -1   );
     960        st.error     = getinfostr( msgid, dict, IPC_ST_ERROR,     NULL );
     961        st.errmsg    = getinfostr( msgid, dict, IPC_ST_ERRMSG,    NULL );
    971962
    972963        if( !TORRENT_ID_VALID( id ) )
     
    975966        }
    976967
    977         if( NULL != resp->statcb )
    978         {
    979             resp->statcb( id, state, eta, done, down, up, error, errmsg );
    980         }
     968        st.id = id;
     969        resp->statcb( &st );
    981970    }
    982971
     
    10271016    if( NULL != resp->infocb )
    10281017    {
    1029         resp->infocb( -1, NULL, -1 );
    1030     }
    1031     else if( NULL != resp->listcb )
    1032     {
    1033         resp->listcb( -1, NULL, NULL );
    1034     }
    1035     else if( NULL != resp->hashcb )
    1036     {
    1037         resp->hashcb( -1, NULL );
     1018        resp->infocb( NULL );
    10381019    }
    10391020    else if( NULL != resp->statcb )
    10401021    {
    1041         resp->statcb( -1, NULL, -1, -1, -1, -1, NULL, NULL );
     1022        resp->statcb( NULL );
    10421023    }
    10431024}
Note: See TracChangeset for help on using the changeset viewer.