VirtualBox

Changeset 107240 in vbox for trunk/src/VBox/Main/src-all


Ignore:
Timestamp:
Dec 6, 2024 10:46:24 AM (3 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
166254
Message:

bugref:10806. New TrackedObjectState enum usage. Added member m_deletionTime. Added the functions updateState, deletionTime. Added getters idleTime, lifeTime, deletionTime, creationTime. Fixed the function resetState and getter state.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/src-all/ObjectsTracker.cpp

    r107151 r107240  
    4747    m_lifeTime(0),
    4848    m_idleTime(1),
    49     m_State(TrackedObjectData::Invalid),
     49    m_state(TrackedObjectState_None),
    5050    m_pIface(NULL)
    5151    {
     
    6868    RTTimeNow(unconst(&m_creationTime));
    6969    m_lastAccessTime = m_creationTime;
    70     m_State = TrackedObjectData::Valid;
     70    m_state = TrackedObjectState_Alive;
    7171}
    7272
     
    8383        m_pIface = that.m_pIface;
    8484        m_creationTime = that.m_creationTime;
     85        m_deletionTime = that.m_deletionTime;
    8586        m_lastAccessTime = that.m_lastAccessTime;
    8687        m_idleTimeStart = that.m_idleTimeStart;
    8788        m_fIdleTimeStart = that.m_fIdleTimeStart;
    88         m_State = that.m_State;
     89        m_state = that.m_state;
    8990    }
    9091}
     
    111112        m_pIface = that.m_pIface;
    112113        m_creationTime = that.m_creationTime;
     114        m_deletionTime = that.m_deletionTime;
    113115        m_lastAccessTime = that.m_lastAccessTime;
    114116        m_idleTimeStart = that.m_idleTimeStart;
    115117        m_fIdleTimeStart = that.m_fIdleTimeStart;
    116         m_State = that.m_State;
     118        m_state = that.m_state;
    117119    }
    118120
     
    134136    if (!m_fIdleTimeStart)
    135137    {
     138        RTTimeNow(unconst(&m_deletionTime));
     139        updateState(TrackedObjectState_Deleted);//Alive -> Deleted
    136140        RTTimeNow(unconst(&m_idleTimeStart));
    137141        m_fIdleTimeStart = true;
     
    149153
    150154    return com::Utf8Str(szCreationTime);
     155}
     156
     157TrackedObjectState_T TrackedObjectData::deletionTime(PRTTIMESPEC aTime) const
     158{
     159    if (m_state != TrackedObjectState_Alive)
     160        *aTime = m_deletionTime;
     161    return m_state;
    151162}
    152163
     
    167178    }
    168179    return cRefs;
     180}
     181
     182TrackedObjectState_T TrackedObjectData::updateState(TrackedObjectState_T aNewState)
     183{
     184    return m_state < aNewState ? m_state = aNewState : m_state;
    169185}
    170186
     
    345361        if ( i_getObj(aObjId).getInterface().isNotNull() )
    346362        {
    347             /* Excessive check because user may get only the valid objects Ids. But for 200% assurance it's here */
    348             if (i_getObj(aObjId).state() == TrackedObjectData::Valid)
     363            if (i_getObj(aObjId).state() != TrackedObjectState_Invalid)
    349364            {
    350365                aObjData = i_getObj(aObjId);
     
    666681    if (pIter != m_trackedObjectsData.end())
    667682    {
    668         pIter->second.resetState();
     683        pIter->second.updateState(TrackedObjectState_Invalid);//Deleted -> Invalid
    669684        m_trackedInvalidObjectIds.insert(aObjId);
    670685        hrc = S_OK;
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