Changeset 778


Ignore:
Timestamp:
07/30/09 22:08:06 (10 years ago)
Author:
Eoin
Message:

Made get torrent details non-blocking. Need to do same for get session details.

Location:
trunk
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/sln/Halite/Halite.vcproj

    r766 r778  
    4646                                AdditionalOptions="/Zm1000" 
    4747                                Optimization="0" 
    48                                 AdditionalIncludeDirectories=""$(SolutionDir)src";"$(SolutionDir)src\WTLx";"$(SolutionDir)lib\libtorrent\include";"$(SolutionDir)lib\libtorrent\zlib";"$(SolutionDir)lib\Asio\include";"$(SolutionDir)lib\OpenSSL\inc";"$(SolutionDir)lib\STLSoft\include"" 
     48                                AdditionalIncludeDirectories=""$(SolutionDir)src";"$(SolutionDir)src\WTLx";"$(SolutionDir)lib\boost_ex";"$(SolutionDir)lib\libtorrent\include";"$(SolutionDir)lib\libtorrent\zlib";"$(SolutionDir)lib\Asio\include";"$(SolutionDir)lib\OpenSSL\inc";"$(SolutionDir)lib\STLSoft\include"" 
    4949                                PreprocessorDefinitions="WIN32_LEAN_AND_MEAN;__USE_W32_SOCKETS;WIN32;_WIN32;_WINDOWS;_DEBUG;TORRENT_USE_BOOST_DATE_TIME;TORRENT_USE_OPENSSL;TORRENT_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0" 
    5050                                MinimalRebuild="true" 
     
    128128                                AdditionalOptions="/Zm1000" 
    129129                                Optimization="0" 
    130                                 AdditionalIncludeDirectories=""$(SolutionDir)src";"$(SolutionDir)src\WTLx";"$(SolutionDir)lib\libtorrent\include";"$(SolutionDir)lib\libtorrent\zlib";"$(SolutionDir)lib\Asio\include";"$(SolutionDir)lib\OpenSSL\inc";"$(SolutionDir)lib\STLSoft\include"" 
     130                                AdditionalIncludeDirectories=""$(SolutionDir)src";"$(SolutionDir)src\WTLx";"$(SolutionDir)lib\boost_ex";"$(SolutionDir)lib\libtorrent\include";"$(SolutionDir)lib\libtorrent\zlib";"$(SolutionDir)lib\Asio\include";"$(SolutionDir)lib\OpenSSL\inc";"$(SolutionDir)lib\STLSoft\include"" 
    131131                                PreprocessorDefinitions="WIN32_LEAN_AND_MEAN;__USE_W32_SOCKETS;WIN32;_WIN32;WIN64;_WIN64;_WINDOWS;_DEBUG;TORRENT_USE_BOOST_DATE_TIME;TORRENT_USE_OPENSSL;TORRENT_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0" 
    132132                                MinimalRebuild="true" 
     
    212212                                EnableIntrinsicFunctions="true" 
    213213                                FavorSizeOrSpeed="1" 
    214                                 AdditionalIncludeDirectories=""$(SolutionDir)src";"$(SolutionDir)src\WTLx";"$(SolutionDir)lib\libtorrent\include";"$(SolutionDir)lib\libtorrent\zlib";"$(SolutionDir)lib\Asio\include";"$(SolutionDir)lib\OpenSSL\inc";"$(SolutionDir)lib\STLSoft\include"" 
     214                                AdditionalIncludeDirectories=""$(SolutionDir)src";"$(SolutionDir)src\WTLx";"$(SolutionDir)lib\boost_ex";"$(SolutionDir)lib\libtorrent\include";"$(SolutionDir)lib\libtorrent\zlib";"$(SolutionDir)lib\Asio\include";"$(SolutionDir)lib\OpenSSL\inc";"$(SolutionDir)lib\STLSoft\include"" 
    215215                                PreprocessorDefinitions="WIN32_LEAN_AND_MEAN;__USE_W32_SOCKETS;WIN32;_WIN32;_WINDOWS;NDEBUG;TORRENT_USE_BOOST_DATE_TIME;TORRENT_USE_OPENSSL;TORRENT_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0" 
    216216                                MinimalRebuild="true" 
     
    299299                                FavorSizeOrSpeed="1" 
    300300                                WholeProgramOptimization="true" 
    301                                 AdditionalIncludeDirectories=""$(SolutionDir)src";"$(SolutionDir)src\WTLx";"$(SolutionDir)lib\libtorrent\include";"$(SolutionDir)lib\libtorrent\zlib";"$(SolutionDir)lib\Asio\include";"$(SolutionDir)lib\OpenSSL\inc";"$(SolutionDir)lib\STLSoft\include"" 
     301                                AdditionalIncludeDirectories=""$(SolutionDir)src";"$(SolutionDir)src\WTLx";"$(SolutionDir)lib\boost_ex";"$(SolutionDir)lib\libtorrent\include";"$(SolutionDir)lib\libtorrent\zlib";"$(SolutionDir)lib\Asio\include";"$(SolutionDir)lib\OpenSSL\inc";"$(SolutionDir)lib\STLSoft\include"" 
    302302                                PreprocessorDefinitions="WIN32_LEAN_AND_MEAN;__USE_W32_SOCKETS;WIN32;_WIN32;WIN64;_WIN64;_WINDOWS;NDEBUG;TORRENT_USE_BOOST_DATE_TIME;TORRENT_USE_OPENSSL;TORRENT_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0" 
    303303                                ExceptionHandling="2" 
  • trunk/src/HaliteDialog.cpp

    r745 r778  
    100100void HaliteDialog::OnPause(UINT, int, HWND) 
    101101{ 
    102         if (hal::torrent_details_ptr torrent = hal::bittorrent::Instance().torrentDetails().focusedTorrent())  
     102        if (hal::torrent_details_ptr torrent = hal::bittorrent::Instance().torrentDetails().focused_torrent())  
    103103        { 
    104104                string torrentName = hal::to_utf8(torrent->name()); 
     
    121121void HaliteDialog::OnReannounce(UINT, int, HWND) 
    122122{ 
    123         if (hal::torrent_details_ptr torrent = hal::bittorrent::Instance().torrentDetails().focusedTorrent())  
     123        if (hal::torrent_details_ptr torrent = hal::bittorrent::Instance().torrentDetails().focused_torrent())  
    124124                hal::bittorrent::Instance().reannounce_torrent(torrent->name()); 
    125125} 
     
    127127void HaliteDialog::OnRemove(UINT, int, HWND) 
    128128{ 
    129         if (hal::torrent_details_ptr torrent = hal::bittorrent::Instance().torrentDetails().focusedTorrent())  
     129        if (hal::torrent_details_ptr torrent = hal::bittorrent::Instance().torrentDetails().focused_torrent())  
    130130        { 
    131131                hal::bittorrent::Instance().remove_torrent(torrent->name()); 
     
    136136LRESULT HaliteDialog::OnHalEditChanged(UINT uMsg, WPARAM wParam, LPARAM lParam) 
    137137{ 
    138         if (hal::bit::torrent t = hal::bittorrent::Instance().get(focusedTorrent())) 
     138        if (hal::bit::torrent t = hal::bittorrent::Instance().get(focused_torrent())) 
    139139        { 
    140140                t.rate_limits = std::pair<float, float>(downloadRate_, uploadRate_); 
     
    197197                peer_details_.clear(); 
    198198                 
    199                 foreach (const hal::torrent_details_ptr torrent, tD.selectedTorrents()) 
    200                 { 
    201                         std::copy(torrent->get_peer_details().begin(), torrent->get_peer_details().end(),  
     199                foreach (const std::wstring filename, tD.selected_names()) 
     200                { 
     201                        const hal::torrent_details_ptr t = tD.get(filename); 
     202                        std::copy(t->get_peer_details().begin(), t->get_peer_details().end(),  
    202203                                std::inserter(peer_details_, peer_details_.begin())); 
    203204                } 
     
    242243        std::pair<int, int> connLimit(-1, -1); 
    243244         
    244         if (hal::bit::torrent t = hal::bittorrent::Instance().get(focusedTorrent())) 
     245        if (hal::bit::torrent t = hal::bittorrent::Instance().get(focused_torrent())) 
    245246        { 
    246247                tranLimit = t.rate_limits; 
     
    295296        std::pair<int, int> connLimit(-1, -1); 
    296297         
    297         if (hal::torrent_details_ptr torrent = tD.focusedTorrent())      
     298        if (hal::torrent_details_ptr torrent = tD.focused_torrent())     
    298299        {        
    299300                string torrent_name = hal::to_utf8(torrent->name()); 
  • trunk/src/HaliteDialogBase.hpp

    r710 r778  
    7171                TBase* pT = static_cast<TBase*>(this); 
    7272                 
    73                 hal::torrent_details_ptr focused = tD.focusedTorrent(); 
     73                hal::torrent_details_ptr focused = tD.focused_torrent(); 
    7474                 
    7575                if ((focusedTorrent_ logical_xor focused) || 
     
    9898        {} 
    9999         
    100         const hal::torrent_details_ptr focusedTorrent() { return focusedTorrent_; } 
     100        const hal::torrent_details_ptr focused_torrent() { return focusedTorrent_; } 
    101101         
    102102        template<typename T> 
  • trunk/src/HaliteListView.cpp

    r745 r778  
    121121                 
    122122        std::set<std::wstring> torrent_set; 
    123         for (size_t td_index=0, e=tD.torrents().size(); td_index<e; ++td_index) 
    124         { 
    125                 hal::torrent_details_ptr td = tD.torrents()[td_index]; 
    126                 torrent_set.insert(td->name()); 
     123        foreach (hal::torrent_details_ptr t,  tD.torrents()) 
     124        { 
     125                torrent_set.insert(t->name()); 
    127126        } 
    128127         
  • trunk/src/HaliteWindow.cpp

    r770 r778  
    320320        } 
    321321         
    322         const hal::torrent_details_manager& torrents = hal::bittorrent::Instance().updatetorrent_details_manager( 
     322        const hal::torrent_details_manager& torrents = hal::bittorrent::Instance().update_torrent_details_manager( 
    323323                haliteList.is_selected_begin()->text().c_str(), s); 
     324 
     325        Sleep(1); 
    324326 
    325327        ui_update_signal_(torrents); 
  • trunk/src/advtabs/Files.cpp

    r745 r778  
    6969        int priority = nCtrlID-ID_HAL_FILE_PRIORITY_0;   
    7070 
    71         if (hal::bit::torrent t = hal::bittorrent::Instance().get(hal::bittorrent::Instance().torrentDetails().focusedTorrent())) 
     71        if (hal::bit::torrent t = hal::bittorrent::Instance().get(hal::bittorrent::Instance().torrentDetails().focused_torrent())) 
    7272                t.file_priorities = std::pair<std::vector<int>, int>(indices, priority); 
    7373 
     
    152152        hal::file_details_vec file_details; 
    153153         
    154         if (hal::torrent_details_ptr torrent = hal::bittorrent::Instance().torrentDetails().focusedTorrent()) 
     154        if (hal::torrent_details_ptr torrent = hal::bittorrent::Instance().torrentDetails().focused_torrent()) 
    155155        { 
    156156                std::copy(torrent->get_file_details().begin(), torrent->get_file_details().end(),  
     
    187187        int priority = nCtrlID-ID_HAL_FILE_PRIORITY_0; 
    188188         
    189         if (hal::bit::torrent t = hal::bittorrent::Instance().get(hal::bittorrent::Instance().torrentDetails().focusedTorrent())) 
     189        if (hal::bit::torrent t = hal::bittorrent::Instance().get(hal::bittorrent::Instance().torrentDetails().focused_torrent())) 
    190190                t.file_priorities = std::pair<std::vector<int>, int>(indices, priority); 
    191191         
     
    285285        std::sort(range_.first, range_.second, &FileLinkNamesLess); 
    286286 
    287         if (focusedTorrent()) 
    288         { 
    289                 hal::file_details_vec all_files = focusedTorrent()->get_file_details();  
     287        if (focused_torrent()) 
     288        { 
     289                hal::file_details_vec all_files = focused_torrent()->get_file_details();         
    290290                FileListView::scoped_files list_files = list_.files(); 
    291291 
     
    306306void AdvFilesDialog::uiUpdate(const hal::torrent_details_manager& tD) 
    307307{ 
    308         list_.setFocused(focusedTorrent()); 
    309          
    310         if (fileLinks_.empty() || !(focusedTorrent() && !focusedTorrent()->get_file_details().empty()))  
     308        list_.setFocused(focused_torrent()); 
     309         
     310        if (fileLinks_.empty() || !(focused_torrent() && !focused_torrent()->get_file_details().empty()))  
    311311        { 
    312312                list_.DeleteAllItems(); 
     
    317317        if (lock)  
    318318        { 
    319                 hal::file_details_vec all_files = focusedTorrent()->get_file_details();  
     319                hal::file_details_vec all_files = focused_torrent()->get_file_details();         
    320320                FileListView::scoped_files list_files = list_.files(); 
    321321 
    322                 if (focusedTorrent() && all_files.size() != list_files->size()) 
     322                if (focused_torrent() && all_files.size() != list_files->size()) 
    323323                { 
    324324                        list_files->clear(); 
     
    404404        splitterPos = splitter_.GetSplitterPos(); 
    405405 
    406         if (focusedTorrent()) 
    407         { 
    408                 hal::file_details_vec all_files = focusedTorrent()->get_file_details();  
     406        if (focused_torrent()) 
     407        { 
     408                hal::file_details_vec all_files = focused_torrent()->get_file_details();         
    409409                FileListView::scoped_files list_files = list_.files(); 
    410410                list_files->clear(); 
  • trunk/src/advtabs/Peers.cpp

    r727 r778  
    5858                peer_details_.clear(); 
    5959                 
    60                 foreach (const hal::torrent_details_ptr torrent, tD.selectedTorrents()) 
     60                foreach (const std::wstring filename, tD.selected_names()) 
    6161                { 
    62                         std::copy(torrent->get_peer_details().begin(), torrent->get_peer_details().end(),  
     62                        const hal::torrent_details_ptr t = tD.get(filename); 
     63                        std::copy(t->get_peer_details().begin(), t->get_peer_details().end(),  
    6364                                std::inserter(peer_details_, peer_details_.begin())); 
    6465                } 
  • trunk/src/advtabs/Torrent.cpp

    r762 r778  
    8787LRESULT AdvTorrentDialog::OnHalEditChanged(UINT uMsg, WPARAM wParam, LPARAM lParam) 
    8888{ 
    89         if (hal::bit::torrent t = hal::bittorrent::Instance().get(focusedTorrent())) 
     89        if (hal::bit::torrent t = hal::bittorrent::Instance().get(focused_torrent())) 
    9090        { 
    9191                t.rate_limits = std::pair<float, float>(downloadRate_, uploadRate_); 
     
    104104        float ratio = 0; 
    105105 
    106         if (hal::bit::torrent t = hal::bittorrent::Instance().get(focusedTorrent())) 
     106        if (hal::bit::torrent t = hal::bittorrent::Instance().get(focused_torrent())) 
    107107        { 
    108108                tranLimit = t.rate_limits; 
     
    150150void AdvTorrentDialog::uiUpdate(const hal::torrent_details_manager& tD) 
    151151{        
    152         if (hal::torrent_details_ptr torrent = tD.focusedTorrent())      
     152        if (hal::torrent_details_ptr torrent = tD.focused_torrent())     
    153153        {                        
    154154                uiUpdateSingle(torrent);         
  • trunk/src/advtabs/Tracker.cpp

    r745 r778  
    6262        setLoginUiState(); 
    6363 
    64         if (hal::bit::torrent t = hal::bittorrent::Instance().get(focusedTorrent())) 
     64        if (hal::bit::torrent t = hal::bittorrent::Instance().get(focused_torrent())) 
    6565                t.tracker_login = make_pair(username_, password_); 
    6666         
     
    141141                password_ = L""; 
    142142                 
    143                 if (hal::bit::torrent t = hal::bittorrent::Instance().get(focusedTorrent())) 
     143                if (hal::bit::torrent t = hal::bittorrent::Instance().get(focused_torrent())) 
    144144                        t.tracker_login = make_pair(username_, password_); 
    145145                 
     
    154154        HAL_DEV_MSG(hal::wform(L"Apply Tracker Login User: %1%, Pass: %2%") % username_ % password_ ); 
    155155 
    156         if (hal::bit::torrent t = hal::bittorrent::Instance().get(focusedTorrent())) 
     156        if (hal::bit::torrent t = hal::bittorrent::Instance().get(focused_torrent())) 
    157157                t.tracker_login = make_pair(username_, password_); 
    158158} 
     
    160160void AdvTrackerDialog::onReannounce(UINT, int, HWND) 
    161161{ 
    162         if (hal::bittorrent::Instance().torrentDetails().focusedTorrent()) 
    163         { 
    164                 if (!hal::bittorrent::Instance().is_torrent_active(focusedTorrent()->name())) 
     162        if (hal::bittorrent::Instance().torrentDetails().focused_torrent()) 
     163        { 
     164                if (!hal::bittorrent::Instance().is_torrent_active(focused_torrent()->name())) 
    165165                { 
    166                         hal::bittorrent::Instance().resume_torrent(focusedTorrent()->name()); 
     166                        hal::bittorrent::Instance().resume_torrent(focused_torrent()->name()); 
    167167                } 
    168168                else 
    169169                { 
    170                         hal::bittorrent::Instance().reannounce_torrent(focusedTorrent()->name()); 
     170                        hal::bittorrent::Instance().reannounce_torrent(focused_torrent()->name()); 
    171171                } 
    172172        } 
     
    180180void AdvTrackerDialog::onReset(UINT, int, HWND) 
    181181{ 
    182         if (hal::bit::torrent t = hal::bittorrent::Instance().get(focusedTorrent())) 
     182        if (hal::bit::torrent t = hal::bittorrent::Instance().get(focused_torrent())) 
    183183        { 
    184184                t.reset_trackers(); 
     
    214214        std::sort(trackers.begin(), trackers.end()); 
    215215                 
    216         if (hal::bit::torrent t = hal::bittorrent::Instance().get(focusedTorrent())) 
     216        if (hal::bit::torrent t = hal::bittorrent::Instance().get(focused_torrent())) 
    217217                t.trackers = trackers; 
    218218         
  • trunk/src/halTorrent.cpp

    r764 r778  
    308308} 
    309309 
    310 void torrent_details_manager::sort(size_t column_index, bool cmp_less) const 
     310/*void torrent_details_manager::sort(size_t column_index, bool cmp_less) const 
    311311{ 
    312312        std::stable_sort(torrents_.begin(), torrents_.end(),  
    313313                bind(&hal_details_ptr_compare<torrent_details_ptr>, _1, _2, column_index, cmp_less)); 
    314 } 
     314}*/ 
    315315 
    316316web_seed_or_dht_node_detail::web_seed_or_dht_node_detail() :  
     
    573573} 
    574574 
    575 const torrent_details_manager& bit::updatetorrent_details_manager(const wstring& focused, const std::set<wstring>& selected) 
    576 { 
    577         try { 
    578          
    579         mutex_t::scoped_lock l(torrentDetails_.mutex_);  
    580          
    581         torrentDetails_.clearAll(l);     
    582         torrentDetails_.selected_names_ = selected; 
    583         torrentDetails_.torrents_.reserve(pimpl()->the_torrents_.size()); 
     575const torrent_details_manager& bit::update_torrent_details_manager(const wstring& focused, const std::set<wstring>& selected) 
     576{ 
     577        try { 
     578 
     579        boost::thread(bind(&bit::update_torrent_details_manager_thread, this, focused, selected)); 
     580         
     581        } HAL_GENERIC_TORRENT_EXCEPTION_CATCH("Torrent Unknown!", "updatetorrent_details_manager") 
     582         
     583        return torrentDetails_; 
     584} 
     585 
     586void bit::update_torrent_details_manager_thread(const wstring& focused, const std::set<wstring>& selected) 
     587{ 
     588        try {    
     589 
     590        torrent_details_map tmp_map; 
    584591         
    585592        for (torrent_manager::torrent_by_name::iterator i=pimpl()->the_torrents_.begin(), e=pimpl()->the_torrents_.end(); i != e; ++i) 
    586593        { 
    587                 wstring utf8Name = (*i).torrent->name(); 
    588                 torrent_details_ptr pT = (*i).torrent->get_torrent_details_ptr(); 
     594                torrent_details_ptr pT = (*i).torrent->get_torrent_details_ptr();                                
     595                tmp_map[(*i).torrent->name()] = pT; 
     596        } 
     597 
     598        { 
    589599                 
    590                 if (selected.find(utf8Name) != selected.end()) 
    591                 { 
    592                         torrentDetails_.selectedTorrents_.push_back(pT); 
    593                 } 
    594                  
    595                 if (focused == utf8Name) 
    596                         torrentDetails_.selectedTorrent_ = pT; 
    597                  
    598                 torrentDetails_.torrentMap_[(*i).torrent->name()] = pT; 
    599                 torrentDetails_.torrents_.push_back(pT); 
     600        mutex_t::scoped_lock l(torrentDetails_.mutex_); 
     601 
     602        torrentDetails_.clear_all(l);    
     603        torrentDetails_.focused_ = focused; 
     604        torrentDetails_.selected_names_ = selected; 
     605 
     606        std::swap(tmp_map, torrentDetails_.torrent_map_); 
     607 
    600608        } 
    601609         
    602610        } HAL_GENERIC_TORRENT_EXCEPTION_CATCH("Torrent Unknown!", "updatetorrent_details_manager") 
    603          
    604         return torrentDetails_; 
    605611} 
    606612 
  • trunk/src/halTorrent.hpp

    r764 r778  
    355355typedef boost::weak_ptr<torrent_details> torrent_details_wptr; 
    356356typedef std::vector<torrent_details_ptr> torrent_details_vec; 
     357typedef std::set<torrent_details_ptr> torrent_details_set; 
    357358typedef std::map<std::wstring, torrent_details_ptr> torrent_details_map; 
    358359 
     
    362363        void sort(size_t index, bool cmp_less = true) const; 
    363364         
    364         const torrent_details_vec torrents() const  
     365        const torrent_details_set torrents() const  
    365366        { 
    366367                mutex_t::scoped_lock l(mutex_);  
    367                 return torrents_;  
     368 
     369                torrent_details_set torrents; 
     370 
     371                for (torrent_details_map::const_iterator i = torrent_map_.begin(), e = torrent_map_.end(); 
     372                                i != e; ++i) 
     373                        torrents.insert(i->second); 
     374 
     375                return torrents;  
    368376        } 
    369          
    370         const torrent_details_vec selectedTorrents() const  
    371         {  
    372                 mutex_t::scoped_lock l(mutex_);  
    373                 return selectedTorrents_;  
    374         } 
    375          
    376         const torrent_details_ptr focusedTorrent() const  
    377         { 
    378                 mutex_t::scoped_lock l(mutex_);  
    379                 return selectedTorrent_;  
     377 
     378        const torrent_details_ptr focused_torrent() const  
     379        { 
     380                return get(focused_);  
    380381        } 
    381382 
     
    386387                mutex_t::scoped_lock l(mutex_);  
    387388                 
    388                 torrent_details_map::const_iterator i = torrentMap_.find(filename); 
     389                torrent_details_map::const_iterator i = torrent_map_.find(filename); 
    389390                 
    390                 if (i != torrentMap_.end()) 
     391                if (i != torrent_map_.end()) 
    391392                        return i->second; 
    392393                else 
     
    397398 
    398399private: 
    399         void clearAll(const mutex_t::scoped_lock&) 
     400        void clear_all(const mutex_t::scoped_lock&) 
    400401        { 
    401402                // !! No mutex lock, it should only be called from functions which  
    402403                // have the lock themselves, hence the unused function param 
    403404                 
    404                 torrents_.clear(); 
    405                 torrentMap_.clear(); 
    406                 selectedTorrents_.clear(); 
    407                 selectedTorrent_.reset(); 
     405                torrent_map_.clear(); 
    408406        } 
    409407 
    410         mutable torrent_details_vec torrents_; 
    411          
    412         torrent_details_map torrentMap_; 
    413         torrent_details_vec selectedTorrents_; 
    414         torrent_details_ptr selectedTorrent_; 
    415408        std::set<wstring> selected_names_; 
     409        torrent_details_map torrent_map_; 
     410 
     411        wstring focused_; 
    416412         
    417413        mutable mutex_t mutex_; 
     
    801797 
    802798        const torrent_details_manager& torrentDetails(); 
    803         const torrent_details_manager& updatetorrent_details_manager(const std::wstring& focused, const std::set<std::wstring>& selected); 
     799        const torrent_details_manager& update_torrent_details_manager( 
     800                const std::wstring& focused, const std::set<std::wstring>& selected); 
    804801         
    805802        bit(); 
     
    813810        void remove_torrent_wstr(const std::wstring& filename); 
    814811        void remove_torrent_wipe_files_wstr(const std::wstring&  filename, remove_files fn); 
     812 
     813        void update_torrent_details_manager_thread( 
     814                const wstring& focused, const std::set<wstring>& selected); 
    815815         
    816816        torrent_details_manager torrentDetails_; 
Note: See TracChangeset for help on using the changeset viewer.