Changeset 542


Ignore:
Timestamp:
08/15/08 21:08:22 (11 years ago)
Author:
Eoin
Message:

Updating HaliteWindow? serialization.

Location:
trunk
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/res/Halite.rc

    r519 r542  
    178178                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,45,190,12 
    179179    GROUPBOX        "Port Forwarding",HAL_BITT_GPORTFORWARDING,5,6,315,54 
    180     CONTROL         "None (Managed Externally)",HAL_BITT_GPORTFORWARD_NONE,"Button",BS_AUTORADIOBUTTON|WS_GROUP,284,73,16,11 
    181     CONTROL         "UnPlug and Play",HAL_BITT_GPORTFORWARD_UPNG,"Button",BS_AUTORADIOBUTTON,284,83,16,11 
    182     CONTROL         "NAT-PMG",HAL_BIT_GPORTFORWARD_NATPMP,"Button",BS_AUTORADIOBUTTON,284,93,16,11 
    183     PUSHBUTTON      "Test",HAL_BITT_GPORTFORWARD_TEST,207,46,51,11,WS_VISIBLE 
     180//    CONTROL         "None (Managed Externally)",HAL_BITT_GPORTFORWARD_NONE,"Button",BS_AUTORADIOBUTTON|WS_GROUP,284,73,16,11 
     181    CONTROL         "UnPlug and Play",HAL_BITT_GPORTFORWARD_UPNG,"Button",BS_AUTOCHECKBOX,284,83,16,11 
     182    CONTROL         "NAT-PMG",HAL_BIT_GPORTFORWARD_NATPMP,"Button",BS_AUTOCHECKBOX,284,93,16,11 
     183    PUSHBUTTON      "Test",HAL_BITT_GPORTFORWARD_TEST,207,46,51,11,NOT WS_VISIBLE 
    184184 
    185185    LISTBOX         HAL_BITT_GPORTFORWARD_LIST,165,24,149,7,LBS_SORT|LBS_NOINTEGRALHEIGHT|WS_VSCROLL|WS_TABSTOP|NOT WS_VISIBLE 
  • trunk/src/ConfigOptions.hpp

    r541 r542  
    267267 
    268268    BEGIN_DDX_MAP(thisClass) 
    269         DDX_CHECK(HAL_BC_PORTCHECK, hal::config().portRange) 
    270         DDX_INT(HAL_BC_PORTFROM, hal::config().portFrom) 
    271         DDX_INT(HAL_BC_PORTTO, hal::config().portTo)             
    272         DDX_CHECK(HAL_BC_HALFCONN_CHECK, hal::config().halfConn) 
    273         DDX_EX_INT_POSITIVE(HAL_BC_HALFCONN_NUM, hal::config().halfConnLimit) 
     269        DDX_CHECK(HAL_BC_PORTCHECK, hal::config().use_port_range_) 
     270        DDX_INT(HAL_BC_PORTFROM, hal::config().port_range_.first) 
     271        DDX_INT(HAL_BC_PORTTO, hal::config().port_range_.second)                 
     272        DDX_CHECK(HAL_BC_HALFCONN_CHECK, hal::config().half_connections_) 
     273        DDX_EX_INT_POSITIVE(HAL_BC_HALFCONN_NUM, hal::config().half_connections_limit_) 
    274274        DDX_CHECK(HAL_BC_DHT, hal::config().enable_dht_) 
    275275        DDX_INT(HAL_BC_DHTPORT, hal::config().dht_settings_.service_port) 
    276         DDX_RADIO(HAL_BITT_GPORTFORWARD_NONE, hal::config().mappingType) 
     276        DDX_CHECK(HAL_BITT_GPORTFORWARD_UPNG, hal::config().mapping_upnp_) 
     277        DDX_CHECK(HAL_BIT_GPORTFORWARD_NATPMP, hal::config().mapping_nat_pmp_) 
    277278    END_DDX_MAP() 
    278279         
     
    293294        WMB_HEAD(WMB_COL(_gap), WMB_COLNOMAX(_exp|50), WMB_COLNOMAX(_exp), WMB_COL(_gap)), \ 
    294295                WMB_ROW(_gap|3, HAL_BITT_GPORTFORWARDING, _r, _r, _r),\ 
    295                 WMB_ROW(_auto,  _d, HAL_BITT_GPORTFORWARD_NONE, _r), \ 
    296296                WMB_ROW(_auto,  _d, HAL_BITT_GPORTFORWARD_UPNG, HAL_BITT_GPORTFORWARD_TEST), \ 
    297297                WMB_ROW(_auto,  _d, HAL_BIT_GPORTFORWARD_NATPMP, _r), \ 
     
    653653         
    654654        GlobalOptions() : 
    655                 gTotalConnections_(0, false, false), 
    656                 gUploadConnections_(0, false, false), 
    657                 gDownloadRate_(0, false, false), 
    658                 gUploadRate_(0, false, false) 
     655                total_connections_(0, false, false), 
     656                upload_connections_(0, false, false), 
     657                download_rate_(0, false, false), 
     658                upload_rate_(0, false, false) 
    659659        {} 
    660660 
     
    714714    BOOL OnInitDialog(HWND hwndFocus, LPARAM lParam) 
    715715        { 
    716                 gTotalConnections_.Attach(GetDlgItem(HAL_BC_MAXCONN)); 
    717                 gUploadConnections_.Attach(GetDlgItem(HAL_BC_MAXUP)); 
    718                 gDownloadRate_.Attach(GetDlgItem(HAL_BC_DOWNRATE)); 
    719                 gUploadRate_.Attach(GetDlgItem(HAL_BC_UPRATE)); 
    720  
    721                 gTotalConnections_ = hal::config().globals_.total; 
    722                 gUploadConnections_ = hal::config().globals_.uploads; 
    723                 gDownloadRate_ = hal::config().globals_.download_rate; 
    724                 gUploadRate_ = hal::config().globals_.upload_rate; 
     716                total_connections_.Attach(GetDlgItem(HAL_BC_MAXCONN)); 
     717                upload_connections_.Attach(GetDlgItem(HAL_BC_MAXUP)); 
     718                download_rate_.Attach(GetDlgItem(HAL_BC_DOWNRATE)); 
     719                upload_rate_.Attach(GetDlgItem(HAL_BC_UPRATE)); 
     720 
     721                total_connections_ = hal::config().globals_.total; 
     722                upload_connections_ = hal::config().globals_.uploads; 
     723                download_rate_ = hal::config().globals_.download_rate; 
     724                upload_rate_ = hal::config().globals_.upload_rate; 
    725725 
    726726                active_downloads_.Attach(GetDlgItem(HAL_CGLOBAL_ACTDOWN)); 
     
    750750                        new hal::EventMsg(L"Applying torrent options.", hal::event_logger::info))); 
    751751 
    752                 hal::config().globals_.total = gTotalConnections_; 
    753                 hal::config().globals_.uploads = gUploadConnections_; 
    754                 hal::config().globals_.download_rate = gDownloadRate_; 
    755                 hal::config().globals_.upload_rate = gUploadRate_; 
     752                hal::config().globals_.total = total_connections_; 
     753                hal::config().globals_.uploads = upload_connections_; 
     754                hal::config().globals_.download_rate = download_rate_; 
     755                hal::config().globals_.upload_rate = upload_rate_; 
    756756         
    757757                hal::config().queue_settings_.active_downloads = active_downloads_; 
     
    766766         
    767767private: 
    768         CHaliteEditCtrl<int> gTotalConnections_; 
    769         CHaliteEditCtrl<int> gUploadConnections_; 
    770         CHaliteEditCtrl<float> gDownloadRate_; 
    771         CHaliteEditCtrl<float> gUploadRate_; 
     768        CHaliteEditCtrl<int> total_connections_; 
     769        CHaliteEditCtrl<int> upload_connections_; 
     770        CHaliteEditCtrl<float> download_rate_; 
     771        CHaliteEditCtrl<float> upload_rate_; 
    772772 
    773773        CHaliteEditCtrl<int> active_downloads_; 
     
    847847        DDX_EX_FLOAT_POSITIVE(HAL_BC_TUPRATE, hal::config().torrentUpRate) 
    848848*/ 
    849                 DDX_EX_STDWSTRING(HAL_BC_SAVEFOLDER, hal::config().defaultSaveFolder); 
    850                 DDX_EX_STDWSTRING(HAL_BC_MOVETO_FOLDER, hal::config().defaultMoveToFolder); 
    851         DDX_CHECK(HAL_BC_MOVETO_CHECK, hal::config().useMoveTo); 
    852         DDX_CHECK(HAL_BC_PROMPTSAVE, hal::config().savePrompt); 
     849                DDX_EX_STDWSTRING(HAL_BC_SAVEFOLDER, hal::config().default_save_folder_); 
     850                DDX_EX_STDWSTRING(HAL_BC_MOVETO_FOLDER, hal::config().default_move_folder_); 
     851        DDX_CHECK(HAL_BC_MOVETO_CHECK, hal::config().use_move_to_); 
     852        DDX_CHECK(HAL_BC_PROMPTSAVE, hal::config().save_prompt_); 
    853853    END_DDX_MAP()        
    854854 
  • trunk/src/HaliteWindow.cpp

    r531 r542  
    350350        { 
    351351         
    352         wstring saveDirectory = wpath(hal::config().defaultSaveFolder).native_file_string(); 
    353         wstring moveToDirectory = wpath(hal::config().defaultMoveToFolder).native_file_string(); 
    354         bool useMoveTo = hal::config().useMoveTo; 
     352        wstring default_save_folder = wpath(hal::config().default_save_folder_).native_file_string(); 
     353        wstring default_move_folder = wpath(hal::config().default_move_folder_).native_file_string(); 
     354        bool use_move_to = hal::config().use_move_to_; 
    355355        bool startPaused = false; 
    356356        bool compactStorage = false; 
    357357         
    358         if (!boost::filesystem::exists(saveDirectory)) 
    359                 boost::filesystem::create_directory(saveDirectory); 
    360  
    361         if (hal::config().savePrompt) 
    362         { 
    363                 AddTorrentDialog addTorrent(saveDirectory, moveToDirectory, useMoveTo, startPaused, compactStorage);     
     358        if (!boost::filesystem::exists(default_save_folder)) 
     359                boost::filesystem::create_directory(default_save_folder); 
     360 
     361        if (hal::config().save_prompt_) 
     362        { 
     363                AddTorrentDialog addTorrent(default_save_folder, default_move_folder, use_move_to, startPaused, compactStorage);         
    364364                 
    365365                if (IDOK != addTorrent.DoModal()) 
     
    368368         
    369369        wpath file(lpszPath, boost::filesystem::native);         
    370         hal::bittorrent().add_torrent(file, wpath(saveDirectory), startPaused, compactStorage,  
    371                 wpath(moveToDirectory), useMoveTo); 
     370        hal::bittorrent().add_torrent(file, wpath(default_save_folder), startPaused, compactStorage,  
     371                wpath(default_move_folder), use_move_to); 
    372372 
    373373        ui().update(); 
  • trunk/src/HaliteWindow.hpp

    r507 r542  
    177177    template<class Archive> 
    178178    void serialize(Archive& ar, const unsigned int version) 
    179         { 
    180                 ar & BOOST_SERIALIZATION_NVP(rect); 
    181                 ar & BOOST_SERIALIZATION_NVP(splitterPos); 
    182                 ar & BOOST_SERIALIZATION_NVP(use_tray); 
    183                 ar & BOOST_SERIALIZATION_NVP(advancedUI); 
    184                 ar & BOOST_SERIALIZATION_NVP(activeTab); 
    185                 if (version > 0) { 
    186                         ar & BOOST_SERIALIZATION_NVP(closeToTray); 
    187                         ar & BOOST_SERIALIZATION_NVP(confirmClose); 
     179        {                
     180                using boost::serialization::make_nvp; 
     181 
     182                switch (version) 
     183                { 
     184                case 2: 
     185                ar      & make_nvp("close_to_tray", closeToTray) 
     186                        & make_nvp("use_tray", use_tray) 
     187                        & make_nvp("confirm_close", confirmClose) 
     188                        & make_nvp("splitter_pos", splitterPos) 
     189                        & make_nvp("advanced_ui", advancedUI) 
     190                        & make_nvp("active_tab", activeTab) 
     191                        & make_nvp("rect", rect); 
     192                break; 
     193 
     194                case 1: 
     195                ar      & make_nvp("closeToTray", closeToTray) 
     196                        & make_nvp("confirmClose", confirmClose); 
     197                         
     198                case 0: 
     199                ar      & make_nvp("rect", rect) 
     200                        & make_nvp("splitterPos", splitterPos) 
     201                        & make_nvp("use_tray", use_tray) 
     202                        & make_nvp("advancedUI", advancedUI) 
     203                        & make_nvp("activeTab", activeTab); 
    188204                } 
    189205        } 
     
    223239}; 
    224240 
    225 BOOST_CLASS_VERSION(HaliteWindow, 1) 
     241BOOST_CLASS_VERSION(HaliteWindow, 2) 
    226242 
    227243#endif // RC_INVOKED 
  • trunk/src/global/txml_iarchive.hpp

    r541 r542  
    138138        void init()  
    139139        { 
    140                 std::string signature = read_attribute<std::string>("signature"); 
    141                 int version = read_attribute<int>("version"); 
    142  
    143                 TXML_LOG(boost::wformat(L" << siganture: %1%, version: %2%") % from_utf8(signature) % version); 
     140                if (current_node_) 
     141                { 
     142                        std::string signature = read_attribute<std::string>("signature"); 
     143                        int version = read_attribute<int>("version"); 
     144 
     145                        TXML_LOG(boost::wformat(L" << siganture: %1%, version: %2%") % from_utf8(signature) % version); 
     146                } 
    144147        } 
    145148 
     
    147150        T read_attribute(const char* attribute_name, const char* fallback_name=0) 
    148151        { 
    149                 T type; 
     152                T type = T(); 
    150153 
    151154                TXML_LOG(boost::wformat(L" << attribute_name: %1%") % from_utf8(attribute_name)); 
    152155 
    153156                xml::element* e = current_node_->to_element(); 
     157                if (!e) return type; 
     158 
    154159                int result = e->query_value_attribute(attribute_name, &type); 
    155160 
     
    175180 
    176181                xml::element* e = current_node_->to_element(); 
     182                if (!e) return type; 
     183 
    177184                int result = e->query_value_attribute(attribute_name, &type); 
    178185 
     
    281288                TXML_LOG(boost::wformat(L" << loading: %1%") % t.name()); 
    282289 
    283                 if (load_start(t.name())) 
     290                if (current_node_ && load_start(t.name())) 
    284291                { 
    285292                        this->detail_common_iarchive::load_override(t.value(), 0); 
  • trunk/src/halConfig.cpp

    r541 r542  
    2626        event_log.post(shared_ptr<EventDetail>(new EventMsg(L"Applying BitTorrent session settings.")));         
    2727 
    28         bittorrent().set_mapping(mappingType);   
     28        bittorrent().set_mapping(mapping_upnp_, mapping_nat_pmp_);       
    2929 
    3030        event_log.post(shared_ptr<EventDetail>(new EventMsg( 
    31                         hal::wform(L"Trying port in range %1% - %2%.") % portFrom % portTo))); 
     31                        hal::wform(L"Trying port in range %1% - %2%.") % port_range_.first % port_range_.second))); 
    3232        try 
    3333        { 
    34         bool success = bittorrent().listen_on( 
    35                 std::make_pair(portFrom, portTo)); 
     34        bool success = bittorrent().listen_on(port_range_); 
    3635        if (!success) 
    3736        { 
     
    8483        } 
    8584         
    86         bittorrent().setSessionHalfOpenLimit(halfConnLimit); 
     85        bittorrent().setSessionHalfOpenLimit(half_connections_limit_); 
    8786         
    8887        bittorrent().resume_all();       
  • trunk/src/halConfig.hpp

    r541 r542  
    3333                globals_(), 
    3434                torrent_defaults_(), 
    35                 portFrom(6881), 
    36                 portTo(6881), 
    37                 portRange(false), 
     35                port_range_(6881,6881), 
     36                use_port_range_(false), 
    3837                enable_dht_(true), 
    3938                dht_settings_(), 
     
    4140                enableProxy(false), 
    4241                proxyPort(0), 
    43                 defaultSaveFolder((hal::app().exe_path().branch_path()/L"incoming").string()), 
    44                 defaultMoveToFolder((hal::app().exe_path().branch_path()/L"completed").string()), 
    45                 useMoveTo(false), 
    46                 savePrompt(true), 
     42                default_save_folder_((hal::app().exe_path().branch_path()/L"incoming").string()), 
     43                default_move_folder_((hal::app().exe_path().branch_path()/L"completed").string()), 
     44                use_move_to_(false), 
     45                save_prompt_(true), 
    4746                enable_pe_(false), 
    4847                pe_settings_(), 
    49                 halfConn(true), 
    50                 halfConnLimit(10), 
    51                 mappingType(0) 
     48                half_connections_(true), 
     49                half_connections_limit_(10), 
     50                mapping_upnp_(false), 
     51                mapping_nat_pmp_(false) 
    5252        { 
    5353                queue_settings_ = hal::bittorrent().get_queue_settings(); 
     
    6464                case 6: 
    6565                ar      & make_nvp("globals", globals_) 
     66                        & make_nvp("default_save_folder", default_save_folder_) 
     67                        & make_nvp("default_move_folder", default_move_folder_) 
     68                        & make_nvp("use_move_to", use_move_to_) 
     69                        & make_nvp("save_prompt", save_prompt_) 
    6670                        & make_nvp("torrent_defaults", torrent_defaults_) 
    6771                        & make_nvp("queue_settings", queue_settings_) 
     
    7074                        & make_nvp("dht_settings", dht_settings_) 
    7175                        & make_nvp("enable_pe", enable_pe_) 
    72                         & make_nvp("pe_settings", pe_settings_); 
     76                        & make_nvp("pe_settings", pe_settings_) 
     77                        & make_nvp("port_range", port_range_) 
     78                        & make_nvp("use_port_range", use_port_range_) 
     79                        & make_nvp("half_connections", half_connections_) 
     80                        & make_nvp("half_connections_limit", half_connections_limit_) 
     81                        & make_nvp("mapping_upnp", mapping_upnp_) 
     82                        & make_nvp("mapping_nat_pmp", mapping_nat_pmp_); 
    7383                break; 
    7484 
    7585                case 4: 
    76                 ar      & BOOST_SERIALIZATION_NVP(defaultMoveToFolder); 
    77                         & BOOST_SERIALIZATION_NVP(useMoveTo); 
     86                ar      & make_nvp("defaultMoveToFolder", default_move_folder_) 
     87                        & make_nvp("useMoveTo", use_move_to_); 
    7888 
    7989                case 3: 
    80                 ar      & BOOST_SERIALIZATION_NVP(mappingType); 
    81  
    8290                case 2: 
    83                 ar      & BOOST_SERIALIZATION_NVP(halfConn) 
    84                         & BOOST_SERIALIZATION_NVP(halfConnLimit); 
     91                ar      & make_nvp("halfConn", half_connections_) 
     92                        & make_nvp("halfConnLimit", half_connections_limit_); 
    8593 
    8694                case 1: 
     
    96104                        & make_nvp("downRate", globals_.download_rate) 
    97105                        & make_nvp("upRate", globals_.upload_rate) 
    98                         & BOOST_SERIALIZATION_NVP(portFrom) 
    99                         & BOOST_SERIALIZATION_NVP(portTo); 
     106                        & make_nvp("portFrom", port_range_.first) 
     107                        & make_nvp("portTo", port_range_.second); 
    100108                 
    101109                ar      & make_nvp("enableDHT", enable_dht_) 
     
    109117 
    110118                ar      & BOOST_SERIALIZATION_NVP(enableIPFilter) 
    111                         & BOOST_SERIALIZATION_NVP(portRange) 
     119                        & make_nvp("portRange", use_port_range_) 
    112120                        & make_nvp("torrentMaxConnections", torrent_defaults_.total) 
    113121                        & make_nvp("torrentMaxUploads", torrent_defaults_.uploads) 
    114122                        & make_nvp("torrentDownRate", torrent_defaults_.download_rate) 
    115123                        & make_nvp("torrentUpRate", torrent_defaults_.upload_rate) 
    116                         & BOOST_SERIALIZATION_NVP(defaultSaveFolder) 
    117                         & BOOST_SERIALIZATION_NVP(savePrompt); 
     124                        & make_nvp("defaultSaveFolder", default_save_folder_) 
     125                        & make_nvp("savePrompt", save_prompt_); 
    118126                } 
    119127        } 
     
    133141         
    134142        hal::connections globals_; 
     143 
     144        std::pair<int, int> port_range_; 
     145        bool use_port_range_; 
     146 
    135147        hal::connections torrent_defaults_; 
    136          
    137         int portFrom; 
    138         int portTo; 
    139         bool portRange; 
     148 
     149        std::wstring default_save_folder_; 
     150        std::wstring default_move_folder_; 
     151        bool use_move_to_; 
     152        bool save_prompt_; 
    140153         
    141154        bool enable_dht_; 
     
    150163        std::wstring proxyPassword; 
    151164         
    152         std::wstring defaultSaveFolder; 
    153         std::wstring defaultMoveToFolder; 
    154         bool useMoveTo; 
    155         bool savePrompt; 
    156165 
    157166    bool enable_pe_; 
    158167        hal::pe_settings pe_settings_; 
    159168         
    160         bool halfConn; 
    161         int halfConnLimit; 
     169        bool half_connections_; 
     170        int half_connections_limit_; 
    162171 
    163         int mappingType; 
     172        bool mapping_upnp_; 
     173        bool mapping_nat_pmp_; 
    164174 
    165175        hal::queue_settings queue_settings_; 
  • trunk/src/halSession.hpp

    r541 r542  
    303303        } 
    304304 
    305         void set_mapping(int mapping) 
    306         { 
    307                 if (mapping != bit::mappingNone) 
    308                 { 
    309                         if (mapping == bit::mappingUPnP) 
    310                         { 
    311                                 event_log.post(shared_ptr<EventDetail>(new EventMsg(L"Starting UPnP mapping."))); 
    312                                 session_.stop_upnp(); 
    313                                 session_.stop_natpmp(); 
    314  
    315                                 signals.successful_listen.connect_once(bind(&libt::session::start_upnp, &session_)); 
    316                         } 
    317                         else 
    318                         { 
    319                                 event_log.post(shared_ptr<EventDetail>(new EventMsg(L"Starting NAT-PMP mapping."))); 
    320                                 session_.stop_upnp(); 
    321                                 session_.stop_natpmp(); 
    322  
    323                                 signals.successful_listen.connect_once(bind(&libt::session::start_natpmp, &session_)); 
    324                         } 
     305        void set_mapping(bool upnp, bool nat_pmp) 
     306        { 
     307                if (upnp) 
     308                { 
     309                        event_log.post(shared_ptr<EventDetail>(new EventMsg(L"Starting UPnP mapping."))); 
     310                        session_.start_upnp(); 
    325311                } 
    326312                else 
    327313                { 
    328                         event_log.post(shared_ptr<EventDetail>(new EventMsg(L"No mapping."))); 
     314                        event_log.post(shared_ptr<EventDetail>(new EventMsg(L"Stopping UPnP mapping."))); 
    329315                        session_.stop_upnp(); 
     316                } 
     317 
     318                if (nat_pmp) 
     319                { 
     320                        event_log.post(shared_ptr<EventDetail>(new EventMsg(L"Starting NAT-PMP mapping."))); 
     321                        session_.start_natpmp(); 
     322                } 
     323                else 
     324                { 
     325                        event_log.post(shared_ptr<EventDetail>(new EventMsg(L"Stopping NAT-PMP mapping."))); 
    330326                        session_.stop_natpmp(); 
    331327                } 
  • trunk/src/halTorrent.cpp

    r541 r542  
    167167} 
    168168 
    169 void bit::set_mapping(int mapping) 
    170 { 
    171         pimpl->set_mapping(mapping); 
     169void bit::set_mapping(bool upnp, bool nat_pmp) 
     170{ 
     171        pimpl->set_mapping(upnp, nat_pmp); 
    172172} 
    173173 
  • trunk/src/halTorrent.hpp

    r541 r542  
    767767        void ensure_ip_filter_off(); 
    768768 
    769         void set_mapping(int mapping); 
     769        void set_mapping(bool upnp, bool nat_pmp); 
    770770 
    771771        void ip_v4_filter_block(boost::asio::ip::address_v4 first, boost::asio::ip::address_v4 last); 
Note: See TracChangeset for help on using the changeset viewer.