Changeset 564


Ignore:
Timestamp:
08/27/08 11:18:15 (11 years ago)
Author:
Eoin
Message:

Added win32_exception class.

Location:
trunk
Files:
2 added
10 edited

Legend:

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

    r557 r564  
    633633                                > 
    634634                        </File> 
     635                        <File 
     636                                RelativePath="..\..\src\win32_exception.cpp" 
     637                                > 
     638                        </File> 
    635639                        <Filter 
    636640                                Name="advtabs" 
     
    12391243                        <File 
    12401244                                RelativePath="..\..\src\UxthemeWrapper.hpp" 
     1245                                > 
     1246                        </File> 
     1247                        <File 
     1248                                RelativePath="..\..\src\win32_exception.hpp" 
    12411249                                > 
    12421250                        </File> 
  • trunk/src/Halite.cpp

    r563 r564  
    116116         
    117117        boost::filesystem::path::default_name_check(boost::filesystem::native); 
     118//      _set_abort_behavior( 0, _WRITE_ABORT_MSG); 
    118119 
    119120        try 
     
    222223        catch (const std::exception& e) 
    223224        { 
    224         MessageBoxA(0, e.what(), "Exception Thrown!", 0); 
     225        std::cerr << e.what() << " Exception Thrown!" << std::endl;//MessageBoxA(0, e.what(), "Exception Thrown!", 0); 
    225226         
    226227        return -1; 
  • trunk/src/HaliteWindow.cpp

    r554 r564  
    401401void HaliteWindow::ShutdownThread() 
    402402{ 
     403        try 
     404        { 
     405 
    403406        hal::bittorrent().close_all(0); 
    404407 
     
    407410 
    408411        hal::bittorrent().shutDownSession(); 
     412 
     413        } 
     414        catch(std::exception& e) 
     415        { 
     416                hal::event_log.post(shared_ptr<hal::EventDetail>(\ 
     417                        new hal::EventStdException(hal::event_logger::debug, e, L"ShutdownThread()"))); 
     418        } 
     419        catch(...) 
     420        { 
     421                hal::event_log.post(shared_ptr<hal::EventDetail>( 
     422                        new hal::EventGeneral(hal::event_logger::warning,  
     423                                hal::event_logger::unclassified, L"ShutdownThread() catch all"))); 
     424        } 
    409425} 
    410426  
  • trunk/src/ProgressDialog.hpp

    r495 r564  
    5959        void ProgressThread() 
    6060        { 
     61                try 
     62                { 
     63 
    6164                int err_code = (fn_(bind(&ProgressDialog::Callback, this, _1, _2)) ? 1 : 0); 
    6265                 
    6366                EndDialog(err_code); 
     67 
     68                } 
     69                catch(std::exception& e) 
     70                { 
     71                        hal::event_log.post(shared_ptr<hal::EventDetail>(\ 
     72                                new hal::EventStdException(hal::event_logger::debug, e, L"ProgressThread()"))); 
     73                } 
     74                catch(...) 
     75                { 
     76                        HAL_DEV_MSG(L"ProgressThread() catch all"); 
     77                } 
    6478        } 
    6579         
  • trunk/src/SplashDialog.hpp

    r531 r564  
    2525#endif 
    2626 
     27#include "win32_exception.hpp" 
    2728#include "halTorrent.hpp" 
    2829 
     
    108109        void SplashThread() 
    109110        { 
     111                win32_exception::install_handler(); 
     112 
     113                try 
     114                { 
     115 
     116                HAL_DEV_MSG(L"SplashThread() calling hal::bittorrent().close_all()"); 
     117 
    110118                hal::bittorrent().close_all(boost::optional<boost::function<void (int)> >(bind(&SplashDialog::ReportNumActive, this, _1))); 
    111119                 
    112120                SetDlgItemText(HAL_CSPLASH_NUM_ACT, hal::app().res_wstr(HAL_CSPLASH_SHUTDOWN_MSG).c_str()); 
    113121 
     122                HAL_DEV_MSG(L"SplashThread() calling hal::bittorrent().stopEventReceiver()"); 
    114123                hal::bittorrent().stopEventReceiver(); 
     124                HAL_DEV_MSG(L"SplashThread() calling hal::bittorrent().shutDownSession()"); 
    115125                hal::bittorrent().shutDownSession(); 
    116126                 
     
    119129                GetWindowRect(rect_); 
    120130                save_to_ini(); 
     131 
     132                } 
     133                catch (const access_violation& e)  
     134                { 
     135                        hal::event_log.post(shared_ptr<hal::EventDetail>( 
     136                                new hal::EventGeneral(hal::event_logger::warning, hal::event_logger::unclassified,  
     137                                (hal::wform(L"Alert handler access_violation (code %1$x) at %2$x. IsWrite %3%, badd address %4$x") % e.code() % (unsigned)e.where() % e.isWrite() % (unsigned)e.badAddress()).str()))); 
     138                } 
     139                catch (const win32_exception& e)  
     140                { 
     141                        hal::event_log.post(shared_ptr<hal::EventDetail>( 
     142                                new hal::EventGeneral(hal::event_logger::warning, hal::event_logger::unclassified,  
     143                                (hal::wform(L"Alert handler win32_exception (code %1$x) at %2$x") % e.code() % (unsigned)e.where()).str()))); 
     144                } 
     145                catch(std::exception& e) 
     146                { 
     147                        hal::event_log.post(shared_ptr<hal::EventDetail>(\ 
     148                                new hal::EventStdException(hal::event_logger::debug, e, L"SplashThread()"))); 
     149                } 
     150                catch(...) 
     151                { 
     152                        HAL_DEV_MSG(L"SplashThread() catch all"); 
     153                } 
     154 
    121155                EndDialog(0); 
    122156        } 
  • trunk/src/halIni.hpp

    r553 r564  
    77#pragma once 
    88 
    9 //#define TXML_ARCHIVE_LOGGING 
     9// #define TXML_ARCHIVE_LOGGING 
    1010#include "global/txml_oarchive.hpp" 
    1111#include "global/txml_iarchive.hpp" 
     
    3030                name_(name) 
    3131        {} 
     32         
     33        ~IniBase() 
     34        { 
     35                TXML_LOG(L"~IniBase()"); 
     36        } 
    3237         
    3338        void save_to_ini() 
  • trunk/src/halSession.cpp

    r554 r564  
    1818#include <libtorrent/torrent_handle.hpp> 
    1919#include <libtorrent/create_torrent.hpp> 
     20 
     21#include "win32_exception.hpp" 
    2022 
    2123#include "global/wtl_app.hpp" 
     
    115117bit_impl::~bit_impl() 
    116118{ 
     119        HAL_DEV_MSG(L"Commence ~BitTorrent_impl");  
     120 
    117121        stop_alert_handler(); 
    118122         
     
    144148                        new hal::EventStdException(event_logger::critical, e, L"~BitTorrent_impl")));  
    145149        } 
     150        catch(...) 
     151        { 
     152                hal::event_log.post(shared_ptr<hal::EventDetail>( 
     153                        new hal::EventGeneral(hal::event_logger::warning,  
     154                                hal::event_logger::unclassified, L"End ~BitTorrent_impl catch all"))); 
     155        } 
     156 
     157        HAL_DEV_MSG(L"~BitTorrent_impl");  
    146158} 
    147159 
     
    373385} 
    374386 
    375  
    376387void bit_impl::start_alert_handler() 
    377388{ 
     
    379390         
    380391        HAL_DEV_MSG(hal::wform(L"start_alert_handler")); 
    381  
    382392 
    383393        boost::function<void (void)> f = bind(&bit_impl::alert_handler, this); 
     
    395405        if (alert_checker_) 
    396406        { 
     407                HAL_DEV_MSG(hal::wform(L"Interrupting alert handler")); 
     408 
    397409                alert_checker_->interrupt(); 
    398410                alert_checker_ = boost::none; 
    399411        } 
     412        else 
     413        { 
     414                HAL_DEV_MSG(hal::wform(L"Alert handler already stopped")); 
     415        } 
    400416} 
    401417         
    402418void bit_impl::alert_handler() 
    403419{ 
     420        win32_exception::install_handler(); 
     421 
     422        try 
     423        { 
     424 
    404425        while (keepChecking_) 
    405426        { 
     
    735756         
    736757        } 
    737 } 
    738  
    739 } 
     758 
     759        } 
     760        catch (const win32_exception& e) { 
     761                hal::event_log.post(shared_ptr<hal::EventDetail>( 
     762                        new hal::EventGeneral(hal::event_logger::warning, hal::event_logger::unclassified,  
     763                        (hal::wform(L"Alert handler win32_exception (code %1%) at %2%") % e.code() % 123).str()))); 
     764    } 
     765        catch(std::exception& e) 
     766        { 
     767                // These are logged as debug because they are rarely important to act on! 
     768                event_log.post(shared_ptr<EventDetail>(\ 
     769                        new EventStdException(event_logger::debug, e, L"alertHandler"))); 
     770        } 
     771 
     772        catch(...) 
     773        { 
     774                hal::event_log.post(shared_ptr<hal::EventDetail>( 
     775                        new hal::EventGeneral(hal::event_logger::warning, hal::event_logger::unclassified, L"Alert handler catch all"))); 
     776        } 
     777} 
     778 
     779} 
  • trunk/src/halSignaler.hpp

    r553 r564  
    2323                if (f_()) 
    2424                { 
    25                         HAL_DEV_MSG(L"Disconnecting"); 
    26                         delete this; 
     25                //      HAL_DEV_MSG(L"Disconnecting"); 
     26                //      delete this; 
    2727                } 
    2828        } 
  • trunk/src/halTorrent.cpp

    r558 r564  
    124124void bit::shutDownSession() 
    125125{ 
     126        HAL_DEV_MSG(L"Commence shutDownSession()");  
     127 
    126128        pimpl.reset(); 
     129 
     130        HAL_DEV_MSG(L"End shutDownSession()");  
    127131} 
    128132 
  • trunk/src/halTorrentInternal.hpp

    r558 r564  
    14401440                assert(in_session()); 
    14411441                assert(handle_.is_paused());     
     1442 
     1443                HAL_DEV_MSG(L"completed_pause()"); 
    14421444                                 
    14431445                state_ = torrent_details::torrent_paused;        
    14441446 
    1445                 HAL_DEV_MSG(L"completed_pause()"); 
    1446  
    14471447                return true; 
    14481448        } 
     
    14521452                mutex_t::scoped_lock l(mutex_); 
    14531453                assert(in_session()); 
    1454         //      assert(handle_.is_paused());     
    1455                  
    1456                 state_ = torrent_details::torrent_stopped; 
     1454        //      assert(handle_.is_paused());                     
    14571455                 
    14581456                remove_from_session(); 
     
    14601458 
    14611459                HAL_DEV_MSG(L"completed_stop()"); 
     1460 
     1461                state_ = torrent_details::torrent_stopped; 
    14621462 
    14631463                return true; 
Note: See TracChangeset for help on using the changeset viewer.