Changeset 9591


Ignore:
Timestamp:
Nov 26, 2009, 5:58:44 PM (12 years ago)
Author:
charles
Message:

(trunk libT) #2096 "magnet links" -- add a callback for clients to know when a magnet torrent's metainfo is finished downloading.

Location:
trunk/libtransmission
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/libtransmission/torrent.c

    r9572 r9591  
    615615}
    616616
     617static void tr_torrentFireMetadataCompleted( tr_torrent * tor );
     618
    617619void
    618620tr_torrentGotNewInfoDict( tr_torrent * tor )
    619621{
    620622    torrentInitFromInfo( tor );
     623
     624    tr_torrentFireMetadataCompleted( tor );
    621625}
    622626
     
    16191623
    16201624void
     1625tr_torrentClearCompletenessCallback( tr_torrent * torrent )
     1626{
     1627    tr_torrentSetCompletenessCallback( torrent, NULL, NULL );
     1628}
     1629
     1630void
    16211631tr_torrentSetRatioLimitHitCallback( tr_torrent                     * tor,
    16221632                                    tr_torrent_ratio_limit_hit_func  func,
     
    16271637    tor->ratio_limit_hit_func = func;
    16281638    tor->ratio_limit_hit_func_user_data = user_data;
    1629 }
    1630 
    1631 void
    1632 tr_torrentClearCompletenessCallback( tr_torrent * torrent )
    1633 {
    1634     tr_torrentSetCompletenessCallback( torrent, NULL, NULL );
    16351639}
    16361640
     
    16871691    tr_torrentUnlock( tor );
    16881692}
     1693
     1694/***
     1695****
     1696***/
     1697
     1698static void
     1699tr_torrentFireMetadataCompleted( tr_torrent * tor )
     1700{
     1701    assert( tr_isTorrent( tor ) );
     1702
     1703    if( tor->metadata_func )
     1704        tor->metadata_func( tor, tor->metadata_func_user_data );
     1705}
     1706
     1707void
     1708tr_torrentSetMetadataCallback( tr_torrent                * tor,
     1709                               tr_torrent_metadata_func    func,
     1710                               void                      * user_data )
     1711{
     1712    assert( tr_isTorrent( tor ) );
     1713
     1714    tor->metadata_func = func;
     1715    tor->metadata_func_user_data = user_data;
     1716}
     1717
    16891718
    16901719/**
  • trunk/libtransmission/torrent.h

    r9550 r9591  
    220220    time_t                     anyDate;
    221221
    222     tr_torrent_completeness_func *   completeness_func;
    223     void *                     completeness_func_user_data;
    224 
    225     tr_torrent_ratio_limit_hit_func * ratio_limit_hit_func;
    226     void *                     ratio_limit_hit_func_user_data;
     222    tr_torrent_metadata_func  * metadata_func;
     223    void                      * metadata_func_user_data;
     224
     225    tr_torrent_completeness_func  * completeness_func;
     226    void                          *  completeness_func_user_data;
     227
     228    tr_torrent_ratio_limit_hit_func  * ratio_limit_hit_func;
     229    void                             * ratio_limit_hit_func_user_data;
    227230
    228231    tr_bool                    isRunning;
  • trunk/libtransmission/transmission.h

    r9582 r9591  
    12561256
    12571257
     1258
     1259typedef void ( tr_torrent_metadata_func )( tr_torrent  * torrent,
     1260                                           void        * user_data );
     1261/**
     1262 * Register to be notified whenever a torrent changes from
     1263 * having incomplete metadata to having complete metadata.
     1264 * This happens when a magnet link finishes downloading
     1265 * metadata from its peers.
     1266 */
     1267void tr_torrentSetMetadataCallback (
     1268         tr_torrent                * tor,
     1269         tr_torrent_metadata_func     func,
     1270         void                      * user_data );
     1271
    12581272/**
    12591273 * Register to be notified whenever a torrent's ratio limit
Note: See TracChangeset for help on using the changeset viewer.