VirtualBox

Ignore:
Timestamp:
Aug 18, 2016 11:48:04 AM (9 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
110276
Message:

bugref:8482. The redundant async task implementations was eliminated in the classes MachineImpl, GuestSessionImpl, SnapshotImpl, VirtualBoxImpl.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/src-server/SnapshotImpl.cpp

    r63563 r63584  
    13001300 * SessionMachine::RestoreSnapshotTask and SessionMachine::DeleteSnapshotTask.
    13011301 */
    1302 struct SessionMachine::SnapshotTask
     1302class SessionMachine::SnapshotTask
    13031303    : public SessionMachine::Task
    13041304{
     1305public:
    13051306    SnapshotTask(SessionMachine *m,
    13061307                 Progress *p,
     
    13151316
    13161317/** Take snapshot task */
    1317 struct SessionMachine::TakeSnapshotTask
     1318class SessionMachine::TakeSnapshotTask
    13181319    : public SessionMachine::SnapshotTask
    13191320{
     1321public:
    13201322    TakeSnapshotTask(SessionMachine *m,
    13211323                     Progress *p,
     
    13441346    }
    13451347
     1348private:
    13461349    void handler()
    13471350    {
    1348         ((SessionMachine *)(Machine *)m_pMachine)->i_takeSnapshotHandler(*this);
     1351        try
     1352        {
     1353            ((SessionMachine *)(Machine *)m_pMachine)->i_takeSnapshotHandler(*this);
     1354        }
     1355        catch(...)
     1356        {
     1357            LogRel(("Some exception in the function i_takeSnapshotHandler()\n"));
     1358        }
    13491359    }
    13501360
     
    13571367    uint32_t m_uMemSize;
    13581368    bool m_fTakingSnapshotOnline;
     1369
     1370    friend HRESULT SessionMachine::i_finishTakingSnapshot(TakeSnapshotTask &task, AutoWriteLock &alock, bool aSuccess);
     1371    friend void SessionMachine::i_takeSnapshotHandler(TakeSnapshotTask &task);
     1372    friend void SessionMachine::i_takeSnapshotProgressCancelCallback(void *pvUser);
    13591373};
    13601374
    13611375/** Restore snapshot task */
    1362 struct SessionMachine::RestoreSnapshotTask
     1376class SessionMachine::RestoreSnapshotTask
    13631377    : public SessionMachine::SnapshotTask
    13641378{
     1379public:
    13651380    RestoreSnapshotTask(SessionMachine *m,
    13661381                        Progress *p,
     
    13701385    {}
    13711386
     1387private:
    13721388    void handler()
    13731389    {
    1374         ((SessionMachine *)(Machine *)m_pMachine)->i_restoreSnapshotHandler(*this);
     1390        try
     1391        {
     1392            ((SessionMachine *)(Machine *)m_pMachine)->i_restoreSnapshotHandler(*this);
     1393        }
     1394        catch(...)
     1395        {
     1396            LogRel(("Some exception in the function i_restoreSnapshotHandler()\n"));
     1397        }
    13751398    }
    13761399};
    13771400
    13781401/** Delete snapshot task */
    1379 struct SessionMachine::DeleteSnapshotTask
     1402class SessionMachine::DeleteSnapshotTask
    13801403    : public SessionMachine::SnapshotTask
    13811404{
     1405public:
    13821406    DeleteSnapshotTask(SessionMachine *m,
    13831407                       Progress *p,
     
    13891413    {}
    13901414
     1415private:
    13911416    void handler()
    13921417    {
    1393         ((SessionMachine *)(Machine *)m_pMachine)->i_deleteSnapshotHandler(*this);
     1418        try
     1419        {
     1420            ((SessionMachine *)(Machine *)m_pMachine)->i_deleteSnapshotHandler(*this);
     1421        }
     1422        catch(...)
     1423        {
     1424            LogRel(("Some exception in the function i_deleteSnapshotHandler()\n"));
     1425        }
    13941426    }
    13951427
    13961428    bool m_fDeleteOnline;
     1429    friend void SessionMachine::i_deleteSnapshotHandler(DeleteSnapshotTask &task);
    13971430};
    13981431
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette