Changeset 506


Ignore:
Timestamp:
07/20/08 16:58:13 (11 years ago)
Author:
Eoin
Message:

Queue configuration applies correctly.

Location:
trunk/src
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/ConfigOptions.hpp

    r505 r506  
    717717 
    718718    BEGIN_DDX_MAP(thisClass) 
    719         DDX_CHECK(HAL_CGLOBAL_DISCOUNTSLOW, hal::config().dont_count_slow_torrents_); 
     719        DDX_CHECK(HAL_CGLOBAL_DISCOUNTSLOW, hal::config().queue_settings_.dont_count_slow_torrents); 
    720720    END_DDX_MAP()        
    721721 
     
    740740                seed_time_limit_.Attach(GetDlgItem(HAL_CGLOBAL_SHARETIME));              
    741741         
    742                 active_downloads_ = hal::config().active_downloads_; 
    743                 active_seeds_ = hal::config().active_seeds_; 
    744                 seeds_hard_limit_ = hal::config().seeds_hard_limit_; 
    745                 seed_ratio_limit_ = hal::config().seed_ratio_limit_; 
    746                 seed_ratio_time_limit_ = hal::config().seed_ratio_time_limit_; 
    747                 seed_time_limit_ = hal::config().seed_time_limit_; 
     742                active_downloads_ = hal::config().queue_settings_.active_downloads; 
     743                active_seeds_ = hal::config().queue_settings_.active_seeds; 
     744                seeds_hard_limit_ = hal::config().queue_settings_.seeds_hard_limit; 
     745                seed_ratio_limit_ = hal::config().queue_settings_.seed_ratio_limit; 
     746                seed_ratio_time_limit_ = hal::config().queue_settings_.seed_ratio_time_limit; 
     747                seed_time_limit_ = hal::config().queue_settings_.seed_time_limit; 
    748748 
    749749                BOOL retval =  DoDataExchange(false); 
     
    763763                hal::config().upRate = gUploadRate_; 
    764764         
    765                 hal::config().active_downloads_ = active_downloads_; 
    766                 hal::config().active_seeds_ = active_seeds_; 
    767                 hal::config().seeds_hard_limit_ = seeds_hard_limit_; 
    768                 hal::config().seed_ratio_limit_ = seed_ratio_limit_; 
    769                 hal::config().seed_ratio_time_limit_ = seed_ratio_time_limit_; 
    770                 hal::config().seed_time_limit_ = seed_time_limit_; 
     765                hal::config().queue_settings_.active_downloads = active_downloads_; 
     766                hal::config().queue_settings_.active_seeds = active_seeds_; 
     767                hal::config().queue_settings_.seeds_hard_limit = seeds_hard_limit_; 
     768                hal::config().queue_settings_.seed_ratio_limit = seed_ratio_limit_; 
     769                hal::config().queue_settings_.seed_ratio_time_limit = seed_ratio_time_limit_; 
     770                hal::config().queue_settings_.seed_time_limit = seed_time_limit_; 
    771771                 
    772772                return DoDataExchange(true); 
  • trunk/src/halConfig.cpp

    r491 r506  
    101101                dhtMaxFailCount); 
    102102 
    103         bittorrent().set_timeouts(peerTimeout, trackerTimeout); 
     103        bittorrent().set_timeouts(peerTimeout, trackerTimeout);  
     104        bittorrent().set_queue_settings(queue_settings_); 
    104105         
    105106        if (enableDHT) 
  • trunk/src/halConfig.hpp

    r505 r506  
    6363                mappingType(0), 
    6464                peerTimeout(30), 
    65                 trackerTimeout(60), 
    66                 active_downloads_(8), 
    67                 active_seeds_(5), 
    68                 seeds_hard_limit_(15), 
    69                 seed_ratio_limit_(2.f), 
    70                 seed_ratio_time_limit_(7.f), 
    71                 seed_time_limit_(24 * 60 * 60), 
    72                 dont_count_slow_torrents_(true), 
    73                 auto_scrape_min_interval_(300), 
    74                 auto_scrape_interval_(1800), 
    75                 auto_manage_interval_(30), 
    76                 close_redundant_connections_(true) 
    77         {} 
     65                trackerTimeout(60) 
     66        { 
     67                queue_settings_ = hal::bittorrent().get_queue_settings(); 
     68        } 
    7869         
    7970        friend class boost::serialization::access; 
     
    135126                } 
    136127 
    137                 if (version > 4) { 
    138                         ar & make_nvp("auto_manage_interval", auto_manage_interval_); 
    139                         ar & make_nvp("active_downloads", active_downloads_); 
    140                         ar & make_nvp("active_seeds", active_seeds_); 
    141                         ar & make_nvp("seeds_hard_limit", seeds_hard_limit_); 
    142                         ar & make_nvp("seed_ratio_limit", seed_ratio_limit_); 
    143                         ar & make_nvp("seed_ratio_time_limit", seed_ratio_time_limit_); 
    144                         ar & make_nvp("seed_time_limit", seed_time_limit_); 
    145                         ar & make_nvp("dont_count_slow_torrents", dont_count_slow_torrents_); 
    146                         ar & make_nvp("auto_scrape_interval", auto_scrape_interval_); 
    147                         ar & make_nvp("auto_scrape_min_interval", auto_scrape_min_interval_); 
    148                         ar & make_nvp("close_redundant_connections", close_redundant_connections_); 
     128                if (version > 5) { 
     129                        ar & make_nvp("queue_settings", queue_settings_); 
    149130                } 
    150131        } 
     
    211192        int trackerTimeout;      
    212193 
    213         int auto_manage_interval_; 
    214  
    215         int active_downloads_; 
    216         int active_seeds_; 
    217         int seeds_hard_limit_; 
    218         float seed_ratio_limit_; 
    219         float seed_ratio_time_limit_; 
    220         int seed_time_limit_; 
    221         bool dont_count_slow_torrents_; 
    222  
    223         int auto_scrape_min_interval_; 
    224         int auto_scrape_interval_; 
    225         bool close_redundant_connections_; 
    226  
     194        hal::queue_settings queue_settings_; 
    227195}; 
    228196 
     
    231199} // namespace hal 
    232200 
    233 BOOST_CLASS_VERSION(hal::Config, 5) 
     201BOOST_CLASS_VERSION(hal::Config, 6) 
  • trunk/src/halSession.hpp

    r503 r506  
    345345 
    346346                event_log.post(shared_ptr<EventDetail>(new EventMsg( 
    347                         wformat(L"Set Timeouts, peer %1%, tracker %2%") % peers % tracker))); 
     347                        wformat(L"Set Timeouts, peer %1%, tracker %2%.") % peers % tracker))); 
     348        } 
     349 
     350 
     351        queue_settings get_queue_settings() 
     352        {                
     353                libt::session_settings settings = session_.settings(); 
     354                queue_settings queue; 
     355 
     356                queue.auto_manage_interval = settings.auto_manage_interval; 
     357                queue.active_downloads = settings.active_downloads; 
     358                queue.active_seeds = settings.active_seeds; 
     359                queue.seeds_hard_limit = settings.active_limit; 
     360                queue.seed_ratio_limit = settings.share_ratio_limit; 
     361                queue.seed_ratio_time_limit = settings.seed_time_ratio_limit; 
     362                queue.seed_time_limit = settings.seed_time_limit; 
     363                queue.dont_count_slow_torrents = settings.dont_count_slow_torrents; 
     364                queue.auto_scrape_min_interval = settings.auto_scrape_min_interval; 
     365                queue.auto_scrape_interval = settings.auto_scrape_interval; 
     366                queue.close_redundant_connections = settings.close_redundant_connections; 
     367 
     368                return queue; 
     369        } 
     370 
     371        void set_queue_settings(const queue_settings& queue) 
     372        { 
     373                libt::session_settings settings = session_.settings(); 
     374 
     375                settings.auto_manage_interval = queue.auto_manage_interval; 
     376                settings.active_downloads = queue.active_downloads; 
     377                settings.active_seeds = queue.active_seeds; 
     378                settings.active_limit = queue.seeds_hard_limit; 
     379                settings.share_ratio_limit = queue.seed_ratio_limit; 
     380                settings.seed_time_ratio_limit = queue.seed_ratio_time_limit; 
     381                settings.seed_time_limit = queue.seed_time_limit; 
     382                settings.dont_count_slow_torrents = queue.dont_count_slow_torrents; 
     383                settings.auto_scrape_min_interval = queue.auto_scrape_min_interval; 
     384                settings.auto_scrape_interval = queue.auto_scrape_interval; 
     385                settings.close_redundant_connections = queue.close_redundant_connections; 
     386 
     387                session_.set_settings(settings); 
     388 
     389                event_log.post(shared_ptr<EventDetail>(new EventMsg( 
     390                        wformat(L"Set queue parameters, %1% downloads and %2% active seeds.")  
     391                                % settings.active_downloads % settings.active_seeds))); 
    348392        } 
    349393 
  • trunk/src/halTorrent.cpp

    r503 r506  
    181181{ 
    182182        pimpl->set_timeouts(peers, tracker); 
     183} 
     184 
     185queue_settings bit::get_queue_settings() 
     186{ 
     187        return pimpl->get_queue_settings(); 
     188} 
     189 
     190void bit::set_queue_settings(const queue_settings& s) 
     191{ 
     192        pimpl->set_queue_settings(s); 
    183193} 
    184194 
  • trunk/src/halTorrent.hpp

    r484 r506  
    5050namespace hal  
    5151{ 
     52 
     53struct queue_settings 
     54{ 
     55        friend class boost::serialization::access; 
     56        template<class Archive> 
     57        void serialize(Archive& ar, const unsigned int version) 
     58        {        
     59                ar & BOOST_SERIALIZATION_NVP(auto_manage_interval); 
     60                ar & BOOST_SERIALIZATION_NVP(active_downloads); 
     61                ar & BOOST_SERIALIZATION_NVP(active_seeds); 
     62                ar & BOOST_SERIALIZATION_NVP(seeds_hard_limit); 
     63                ar & BOOST_SERIALIZATION_NVP(seed_ratio_limit); 
     64                ar & BOOST_SERIALIZATION_NVP(seed_ratio_time_limit); 
     65                ar & BOOST_SERIALIZATION_NVP(seed_time_limit); 
     66                ar & BOOST_SERIALIZATION_NVP(dont_count_slow_torrents); 
     67                ar & BOOST_SERIALIZATION_NVP(auto_scrape_min_interval); 
     68                ar & BOOST_SERIALIZATION_NVP(auto_scrape_interval); 
     69                ar & BOOST_SERIALIZATION_NVP(close_redundant_connections); 
     70        } 
     71 
     72        bool operator==(const queue_settings& s) const 
     73        { 
     74                return (auto_manage_interval == s.auto_manage_interval && 
     75                        active_downloads == s.active_downloads && 
     76                        active_seeds == s.active_seeds && 
     77                        seeds_hard_limit == s.seeds_hard_limit && 
     78                        seed_ratio_limit == s.seed_ratio_limit && 
     79                        seed_ratio_time_limit == s.seed_ratio_time_limit && 
     80                        seed_time_limit == s.seed_time_limit && 
     81                        dont_count_slow_torrents == s.dont_count_slow_torrents && 
     82                        auto_scrape_min_interval == s.auto_scrape_min_interval && 
     83                        auto_scrape_interval == s.auto_scrape_interval && 
     84                        close_redundant_connections == s.close_redundant_connections); 
     85        } 
     86         
     87        bool operator!=(const queue_settings& s) const 
     88        { 
     89                return !(*this == s); 
     90        } 
     91 
     92        int auto_manage_interval; 
     93 
     94        int active_downloads; 
     95        int active_seeds; 
     96        int seeds_hard_limit; 
     97        float seed_ratio_limit; 
     98        float seed_ratio_time_limit; 
     99        int seed_time_limit; 
     100        bool dont_count_slow_torrents; 
     101 
     102        int auto_scrape_min_interval; 
     103        int auto_scrape_interval; 
     104        bool close_redundant_connections; 
     105}; 
    52106         
    53107struct torrentBriefDetail  
     
    602656                int service_port, int max_fail_count); 
    603657        void set_timeouts(int peers, int tracker); 
     658 
     659        queue_settings get_queue_settings(); 
     660        void set_queue_settings(const queue_settings& s); 
    604661         
    605662        const SessionDetail getSessionDetails(); 
Note: See TracChangeset for help on using the changeset viewer.