Changeset 687


Ignore:
Timestamp:
01/17/09 11:37:05 (11 years ago)
Author:
Eoin
Message:

Transisitions relating to pausing and resume data writing complete.

Location:
trunk/src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/halSession.cpp

    r686 r687  
    519519                get(a.handle)->signals().resume_data(); 
    520520 
    521                 get(a.handle)->post_event(ev_resume_data_written()); 
     521                get(a.handle)->post_event(ev_resume_data_alert()); 
    522522        } 
    523523         
  • trunk/src/halTorrentIntEvents.hpp

    r686 r687  
    5050 
    5151struct ev_write_resume_data : sc::event< ev_stop > {}; 
    52 struct ev_resume_data_written : sc::event<ev_resume_data_written> {}; 
     52struct ev_resume_data_alert : sc::event< ev_resume_data_alert > {}; 
    5353 
    5454} // namespace hal 
  • trunk/src/halTorrentIntStates.cpp

    r686 r687  
    7171} 
    7272 
    73 sc::result leaving_session::react(const ev_resume_data_written& evt) 
     73sc::result leaving_session::react(const ev_resume_data_alert& evt) 
    7474{ 
    7575        torrent_internal& t_i = context<torrent_internal>(); 
     
    138138active::~active() 
    139139{ 
     140        context<torrent_internal>().handle_.pause(); 
     141 
    140142        TORRENT_STATE_LOG(L"Exiting ~active()"); 
    141143} 
     
    143145sc::result active::react(const ev_pause& evt) 
    144146{ 
    145         context<torrent_internal>().handle_.pause(); 
    146  
    147147        return transit< pausing >(); 
    148148} 
    149149 
     150sc::result active::react(const ev_stop& evt) 
     151{ 
     152        return transit< stopping >(); 
     153} 
     154 
    150155pausing::pausing() 
    151156{ 
     
    179184} 
    180185 
     186/*sc::result stopping::react(const ev_paused_alert& evt) 
     187{ 
     188        context<torrent_internal>().handle_.save_resume_data(); 
     189 
     190        return discard_event(); 
     191}*/ 
     192 
    181193stopped::stopped() 
    182194{ 
     
    189201} 
    190202 
    191 resume_data_waiting::resume_data_waiting() 
     203resume_data_waiting::resume_data_waiting(base_type::my_context ctx) : 
     204        base_type::my_base(ctx) 
    192205{ 
    193206        TORRENT_STATE_LOG(L"Entering resume_data_waiting()"); 
     207 
     208        context<torrent_internal>().handle_.save_resume_data(); 
    194209} 
    195210 
  • trunk/src/halTorrentIntStates.hpp

    r686 r687  
    5252        typedef mpl::list< 
    5353                sc::custom_reaction< ev_add_to_session >, 
    54                 sc::custom_reaction< ev_resume_data_written > 
     54                sc::custom_reaction< ev_resume_data_alert > 
    5555        > reactions; 
    5656 
     
    5858        ~leaving_session();      
    5959 
    60         sc::result react(const ev_resume_data_written& evt); 
     60        sc::result react(const ev_resume_data_alert& evt); 
    6161        sc::result react(const ev_add_to_session& evt); 
    6262}; 
     
    6666struct paused; 
    6767struct stopping; 
     68struct resume_data_waiting; 
    6869struct resume_data_idling; 
    6970 
     
    8485struct resume_data_idling : sc::simple_state<resume_data_idling, in_the_session::orthogonal< 0 > > 
    8586{ 
     87        typedef mpl::list< 
     88                sc::transition< ev_paused_alert, resume_data_waiting > 
     89        > reactions; 
     90 
    8691        resume_data_idling(); 
    8792        ~resume_data_idling(); 
    8893}; 
    8994 
    90 struct resume_data_waiting : sc::simple_state<resume_data_waiting, in_the_session::orthogonal< 0 > > 
     95struct resume_data_waiting : sc::state<resume_data_waiting, in_the_session::orthogonal< 0 > > 
    9196{ 
    92         resume_data_waiting(); 
     97        typedef sc::state<resume_data_waiting, in_the_session::orthogonal< 0 > > base_type; 
     98 
     99        typedef mpl::list< 
     100                sc::transition< ev_resume_data_alert, resume_data_idling > 
     101        > reactions; 
     102 
     103        resume_data_waiting(base_type::my_context ctx); 
    93104        ~resume_data_waiting(); 
    94105}; 
     
    99110 
    100111        typedef mpl::list< 
    101                 sc::custom_reaction< ev_pause > 
     112                sc::custom_reaction< ev_pause >, 
     113                sc::custom_reaction< ev_stop > 
    102114        > reactions; 
    103115 
     
    106118 
    107119        sc::result react(const ev_pause& evt); 
     120        sc::result react(const ev_stop& evt); 
    108121}; 
    109122 
     
    126139struct stopping : sc::simple_state<stopping, in_the_session::orthogonal< 1 > > 
    127140{ 
     141        typedef mpl::list< 
     142        //      sc::custom_reaction< ev_paused_alert >, 
     143                sc::transition< ev_resume_data_alert, stopped > 
     144        > reactions; 
     145 
    128146        stopping(); 
    129147        ~stopping(); 
     148 
     149        //sc::result react(const ev_paused_alert& evt); 
    130150}; 
    131151 
  • trunk/src/halTorrentInternal.hpp

    r686 r687  
    306306        friend struct stopping; 
    307307        friend struct stopped; 
     308        friend struct resume_data_waiting; 
    308309        friend struct resume_data_idling; 
    309310 
Note: See TracChangeset for help on using the changeset viewer.