Changeset 343


Ignore:
Timestamp:
12/01/07 18:11:22 (12 years ago)
Author:
Eoin
Message:

Switch to shared_ptr managed TorrentInternal? class seems to working.

Location:
src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/halTorrent.cpp

    r342 r343  
    342342                        event().post(shared_ptr<EventDetail>( 
    343343                                new EventMsg((wformat(hal::app().res_wstr(LBT_EVENT_TORRENT_FINISHED))  
    344                                                 % get(a.handle).name()),  
     344                                                % get(a.handle)->name()),  
    345345                                        Event::info, a.timestamp()))); 
    346346                         
    347                         get(a.handle).finished();        
     347                        get(a.handle)->finished();       
    348348                } 
    349349                 
     
    352352                        event().post(shared_ptr<EventDetail>( 
    353353                                new EventMsg((wformat(hal::app().res_wstr(LBT_EVENT_TORRENT_PAUSED))  
    354                                                 % get(a.handle).name()),  
     354                                                % get(a.handle)->name()),  
    355355                                        Event::info, a.timestamp()))); 
    356356 
    357                         get(a.handle).completedPauseEvent(); 
     357                        get(a.handle)->completedPauseEvent(); 
    358358                } 
    359359                 
     
    373373                                new EventGeneral(lbtAlertToHalEvent(a.severity()), a.timestamp(), 
    374374                                        wformat(hal::app().res_wstr(HAL_PEER_BAN_ALERT)) 
    375                                                 % get(a.handle).name() 
     375                                                % get(a.handle)->name() 
    376376                                                % hal::from_utf8_safe(a.ip.address().to_string())) 
    377377                        )       );                               
     
    383383                                new EventGeneral(lbtAlertToHalEvent(a.severity()), a.timestamp(), 
    384384                                        wformat(hal::app().res_wstr(HAL_HASH_FAIL_ALERT)) 
    385                                                 % get(a.handle).name() 
     385                                                % get(a.handle)->name() 
    386386                                                % a.piece_index) 
    387387                        )       );                               
     
    393393                                new EventGeneral(lbtAlertToHalEvent(a.severity()), a.timestamp(), 
    394394                                        wformat(hal::app().res_wstr(HAL_URL_SEED_ALERT)) 
    395                                                 % get(a.handle).name() 
     395                                                % get(a.handle)->name() 
    396396                                                % hal::from_utf8_safe(a.url) 
    397397                                                % hal::from_utf8_safe(a.msg())) 
     
    404404                                new EventGeneral(lbtAlertToHalEvent(a.severity()), a.timestamp(), 
    405405                                        wformat(hal::app().res_wstr(HAL_TRACKER_WARNING_ALERT)) 
    406                                                 % get(a.handle).name() 
     406                                                % get(a.handle)->name() 
    407407                                                % hal::from_utf8_safe(a.msg())) 
    408408                        )       );                               
     
    413413                        event().post(shared_ptr<EventDetail>( 
    414414                                new EventMsg((wformat(hal::app().res_wstr(HAL_TRACKER_ANNOUNCE_ALERT))  
    415                                                 % get(a.handle).name()),  
     415                                                % get(a.handle)->name()),  
    416416                                        Event::info, a.timestamp()))); 
    417417                } 
     
    422422                                new EventGeneral(lbtAlertToHalEvent(a.severity()), a.timestamp(), 
    423423                                        wformat(hal::app().res_wstr(HAL_TRACKER_ALERT)) 
    424                                                 % get(a.handle).name() 
     424                                                % get(a.handle)->name() 
    425425                                                % hal::from_utf8_safe(a.msg()) 
    426426                                                % a.times_in_row 
     
    434434                                new EventGeneral(lbtAlertToHalEvent(a.severity()), a.timestamp(), 
    435435                                        wformat(hal::app().res_wstr(HAL_TRACKER_REPLY_ALERT)) 
    436                                                 % get(a.handle).name() 
     436                                                % get(a.handle)->name() 
    437437                                                % hal::from_utf8_safe(a.msg()) 
    438438                                                % a.num_peers) 
     
    445445                                new EventGeneral(lbtAlertToHalEvent(a.severity()), a.timestamp(), 
    446446                                        wformat(hal::app().res_wstr(HAL_FAST_RESUME_ALERT)) 
    447                                                 % get(a.handle).name() 
     447                                                % get(a.handle)->name() 
    448448                                                % hal::from_utf8_safe(a.msg())) 
    449449                        )       );                               
     
    455455                                new EventGeneral(Event::debug, a.timestamp(), 
    456456                                        wformat(hal::app().res_wstr(HAL_PIECE_FINISHED_ALERT)) 
    457                                                 % get(a.handle).name() 
     457                                                % get(a.handle)->name() 
    458458                                                % a.piece_index) 
    459459                        )       );                               
     
    465465                                new EventGeneral(Event::debug, a.timestamp(), 
    466466                                        wformat(hal::app().res_wstr(HAL_BLOCK_FINISHED_ALERT)) 
    467                                                 % get(a.handle).name() 
     467                                                % get(a.handle)->name() 
    468468                                                % a.block_index 
    469469                                                % a.piece_index) 
     
    476476                                new EventGeneral(Event::debug, a.timestamp(), 
    477477                                        wformat(hal::app().res_wstr(HAL_BLOCK_DOWNLOADING_ALERT)) 
    478                                                 % get(a.handle).name() 
     478                                                % get(a.handle)->name() 
    479479                                                % a.block_index 
    480480                                                % a.piece_index) 
     
    520520                        BitTorrent_impl& bit_impl_; 
    521521                         
    522                         TorrentInternal& get(lbt::torrent_handle h) const  
     522                        TorrentInternal_ptr get(lbt::torrent_handle h) const  
    523523                        {  
    524524                                return bit_impl_.theTorrents.get(from_utf8_safe(h.get_torrent_info().name()));  
     
    11891189        if (p.second) 
    11901190        { 
    1191                 TorrentInternal& me = pimpl->theTorrents.get(TIp->name()); 
    1192                  
    1193                 me.setTransferSpeed(bittorrent().defTorrentDownload(), bittorrent().defTorrentUpload()); 
    1194                 me.setConnectionLimit(bittorrent().defTorrentMaxConn(), bittorrent().defTorrentMaxUpload()); 
    1195                  
    1196                 me.addToSession(startPaused); 
     1191                TorrentInternal_ptr me = pimpl->theTorrents.get(TIp->name()); 
     1192                 
     1193                me->setTransferSpeed(bittorrent().defTorrentDownload(), bittorrent().defTorrentUpload()); 
     1194                me->setConnectionLimit(bittorrent().defTorrentMaxConn(), bittorrent().defTorrentMaxUpload()); 
     1195                 
     1196                me->addToSession(startPaused); 
    11971197        } 
    11981198         
     
    14951495        try { 
    14961496         
    1497         pimpl->theTorrents.get(filename).getPeerDetails(peerContainer); 
     1497        pimpl->theTorrents.get(filename)->getPeerDetails(peerContainer); 
    14981498         
    14991499        } HAL_GENERIC_TORRENT_EXCEPTION_CATCH(filename, "getAllPeerDetails") 
     
    15091509        try { 
    15101510         
    1511         pimpl->theTorrents.get(filename).getFileDetails(fileDetails); 
     1511        pimpl->theTorrents.get(filename)->getFileDetails(fileDetails); 
    15121512         
    15131513        } HAL_GENERIC_TORRENT_EXCEPTION_CATCH(filename, "getAllFileDetails") 
     
    15391539        try { 
    15401540         
    1541         pimpl->theTorrents.get(filename).pause(); 
     1541        pimpl->theTorrents.get(filename)->pause(); 
    15421542         
    15431543        } HAL_GENERIC_TORRENT_EXCEPTION_CATCH(filename, "pauseTorrent") 
     
    15531553        try { 
    15541554         
    1555         pimpl->theTorrents.get(filename).resume(); 
     1555        pimpl->theTorrents.get(filename)->resume(); 
    15561556         
    15571557        } HAL_GENERIC_TORRENT_EXCEPTION_CATCH(filename, "resumeTorrent") 
     
    15671567        try { 
    15681568         
    1569         pimpl->theTorrents.get(filename).stop(); 
     1569        pimpl->theTorrents.get(filename)->stop(); 
    15701570         
    15711571        } HAL_GENERIC_TORRENT_EXCEPTION_CATCH(filename, "stopTorrent") 
     
    15811581        try { 
    15821582         
    1583         return pimpl->theTorrents.get(filename).isActive(); 
     1583        return pimpl->theTorrents.get(filename)->isActive(); 
    15841584         
    15851585        } HAL_GENERIC_TORRENT_EXCEPTION_CATCH(filename, "isTorrentActive") 
     
    15971597        try { 
    15981598         
    1599         pimpl->theTorrents.get(filename).handle().force_reannounce(); 
     1599        pimpl->theTorrents.get(filename)->handle().force_reannounce(); 
    16001600         
    16011601        } HAL_GENERIC_TORRENT_EXCEPTION_CATCH(filename, "reannounceTorrent") 
     
    16111611        try { 
    16121612         
    1613         pimpl->theTorrents.get(filename).setTrackerLogin(username, password); 
     1613        pimpl->theTorrents.get(filename)->setTrackerLogin(username, password); 
    16141614         
    16151615        } HAL_GENERIC_TORRENT_EXCEPTION_CATCH(filename, "setTorrentLogin") 
     
    16251625        try { 
    16261626         
    1627         return pimpl->theTorrents.get(filename).getTrackerLogin(); 
     1627        return pimpl->theTorrents.get(filename)->getTrackerLogin(); 
    16281628         
    16291629        } HAL_GENERIC_TORRENT_EXCEPTION_CATCH(filename, "getTorrentLogin") 
     
    16791679        try { 
    16801680         
    1681         lbt::torrent_handle handle = pimpl->theTorrents.get(filename).handle(); 
     1681        lbt::torrent_handle handle = pimpl->theTorrents.get(filename)->handle(); 
    16821682        pimpl->theTorrents.erase(filename); 
    16831683                 
     
    16961696        try { 
    16971697                 
    1698         lbt::torrent_handle handle = pimpl->theTorrents.get(filename).handle(); 
     1698        lbt::torrent_handle handle = pimpl->theTorrents.get(filename)->handle(); 
    16991699        pimpl->theTorrents.erase(filename); 
    17001700                 
     
    17411741        try { 
    17421742         
    1743         pimpl->theTorrents.get(filename).setConnectionLimit(maxConn, maxUpload); 
     1743        pimpl->theTorrents.get(filename)->setConnectionLimit(maxConn, maxUpload); 
    17441744         
    17451745        } HAL_GENERIC_TORRENT_EXCEPTION_CATCH(filename, "setTorrentLimit") 
     
    17551755        try { 
    17561756         
    1757         pimpl->theTorrents.get(filename).setRatio(ratio); 
     1757        pimpl->theTorrents.get(filename)->setRatio(ratio); 
    17581758         
    17591759        } HAL_GENERIC_TORRENT_EXCEPTION_CATCH(filename, "setTorrentRatio") 
     
    17691769        try { 
    17701770         
    1771         return pimpl->theTorrents.get(filename).getRatio(); 
     1771        return pimpl->theTorrents.get(filename)->getRatio(); 
    17721772         
    17731773        } HAL_GENERIC_TORRENT_EXCEPTION_CATCH(filename, "getTorrentRatio") 
     
    17851785        try { 
    17861786         
    1787         pimpl->theTorrents.get(filename).setTransferSpeed(download, upload); 
     1787        pimpl->theTorrents.get(filename)->setTransferSpeed(download, upload); 
    17881788         
    17891789        } HAL_GENERIC_TORRENT_EXCEPTION_CATCH(filename, "setTorrentSpeed") 
     
    17991799        try { 
    18001800         
    1801         return pimpl->theTorrents.get(filename).getConnectionLimit(); 
     1801        return pimpl->theTorrents.get(filename)->getConnectionLimit(); 
    18021802         
    18031803        } HAL_GENERIC_TORRENT_EXCEPTION_CATCH(filename, "getTorrentLimit") 
     
    18151815        try { 
    18161816         
    1817         return pimpl->theTorrents.get(filename).getTransferSpeed(); 
     1817        return pimpl->theTorrents.get(filename)->getTransferSpeed(); 
    18181818         
    18191819        } HAL_GENERIC_TORRENT_EXCEPTION_CATCH(filename, "getTorrentSpeed") 
     
    18331833        try { 
    18341834         
    1835         pimpl->theTorrents.get(filename).setFilePriorities(fileIndices, priority); 
     1835        pimpl->theTorrents.get(filename)->setFilePriorities(fileIndices, priority); 
    18361836         
    18371837        } HAL_GENERIC_TORRENT_EXCEPTION_CATCH(filename, "setTorrentFilePriorities") 
     
    18491849        try { 
    18501850         
    1851         pimpl->theTorrents.get(filename).setTrackers(trackers); 
     1851        pimpl->theTorrents.get(filename)->setTrackers(trackers); 
    18521852         
    18531853        } HAL_GENERIC_TORRENT_EXCEPTION_CATCH(filename, "setTorrentTrackers") 
     
    18631863        try { 
    18641864         
    1865         pimpl->theTorrents.get(filename).resetTrackers(); 
     1865        pimpl->theTorrents.get(filename)->resetTrackers(); 
    18661866         
    18671867        } HAL_GENERIC_TORRENT_EXCEPTION_CATCH(filename, "resetTorrentTrackers") 
     
    18771877        try { 
    18781878         
    1879         return pimpl->theTorrents.get(filename).getTrackers(); 
     1879        return pimpl->theTorrents.get(filename)->getTrackers(); 
    18801880         
    18811881        } HAL_GENERIC_TORRENT_EXCEPTION_CATCH(filename, "getTorrentTrackers") 
  • src/halTorrentInternal.hpp

    r342 r343  
    11171117        } 
    11181118 
    1119         TorrentInternal& getByFile(const wstring& filename) 
     1119        TorrentInternal_ptr getByFile(const wstring& filename) 
    11201120        { 
    11211121                torrentByFilename::iterator it = torrents_.get<byFilename>().find(filename); 
    11221122                 
    1123                 if (it != torrents_.get<byFilename>().end()) 
    1124                 { 
    1125                         return *(*it).torrent; 
     1123                if (it != torrents_.get<byFilename>().end() && (*it).torrent) 
     1124                { 
     1125                        return (*it).torrent; 
    11261126                } 
    11271127                 
     
    11291129        } 
    11301130         
    1131         TorrentInternal& get(const wstring& name) 
     1131        TorrentInternal_ptr get(const wstring& name) 
    11321132        { 
    11331133                torrentByName::iterator it = torrents_.get<byName>().find(name); 
    11341134                 
    1135                 if (it != torrents_.get<byName>().end()) 
    1136                 { 
    1137                         return *(*it).torrent; 
    1138                 } 
    1139                  
    1140                 event().post(shared_ptr<EventDetail>( 
    1141                         new EventMsg(wformat(L"Invalid Torrent. theTorrents size: %1%.") % torrents_.size())));  
    1142  
    1143                 for (torrentByName::iterator i=begin(), e=end(); i != e; ++i) 
    1144                 { 
    1145                 event().post(shared_ptr<EventDetail>( 
    1146                         new EventMsg(wformat(L"-> %1% - %2%.") % (*i).name % (*i).torrent->name())));    
     1135                if (it != torrents_.get<byName>().end() && (*it).torrent) 
     1136                { 
     1137                        return (*it).torrent; 
    11471138                } 
    11481139                 
Note: See TracChangeset for help on using the changeset viewer.