Ignore:
Timestamp:
04/28/09 20:45:50 (10 years ago)
Author:
Eoin
Message:

Restoring torrents to their proper states fixed.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/halTorrentIntStates.cpp

    r747 r748  
    8585        t_i.in_session_ = true; 
    8686 
    87 //      if (evt.pause()) 
     87        if (evt.pause()) 
    8888                return transit< paused >(); 
    89 //      else 
    90 //              return transit< active >(); 
    91  
     89        else 
     90                return transit< active >(); 
     91 
     92} 
     93 
     94sc::result out_of_session::react(const ev_resume& evt) 
     95{ 
     96        post_event(ev_add_to_session(false)); 
     97 
     98        return discard_event(); 
    9299} 
    93100 
     
    223230} 
    224231 
    225 sc::result stopped::react(const ev_resume& evt) 
    226 { 
    227         post_event(ev_add_to_session(false)); 
     232not_started::not_started(base_type::my_context ctx) : 
     233        base_type::my_base(ctx) 
     234{ 
     235        torrent_internal& t_i = context<torrent_internal>(); 
     236        stored_state_ = t_i.state(); 
     237 
     238        TORRENT_STATE_LOG(hal::wform(L"Entering not_started() - %1%") % stored_state_); 
     239} 
     240 
     241not_started::~not_started() 
     242{ 
     243        TORRENT_STATE_LOG(L"Exiting ~not_started()"); 
     244} 
     245 
     246sc::result not_started::react(const ev_start& evt) 
     247{ 
     248        switch (stored_state_) 
     249        { 
     250        case torrent_details::torrent_active: 
     251                post_event(ev_add_to_session(false)); 
     252                break; 
     253 
     254        case torrent_details::torrent_paused: 
     255        case torrent_details::torrent_pausing: 
     256                post_event(ev_add_to_session(true)); 
     257                break; 
     258                 
     259        case torrent_details::torrent_stopped: 
     260        case torrent_details::torrent_stopping:          
     261        case torrent_details::torrent_in_error: 
     262                return transit< stopped >(); 
     263        }; 
    228264 
    229265        return discard_event(); 
Note: See TracChangeset for help on using the changeset viewer.