VirtualBox

Changeset 106980 in vbox for trunk/src/VBox/Main


Ignore:
Timestamp:
Nov 13, 2024 9:22:56 AM (3 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
165911
Message:

Added compile time condition into findProgressById(). The env variable VBOX_WITH_OBJ_TRACKER allows to use the gTrackedObjectsCollector for searching a progress object.

File:
1 edited

Legend:

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

    r106883 r106980  
    64466446                        tr("The provided progress object GUID is invalid"));
    64476447
     6448#ifdef VBOX_WITH_OBJ_TRACKER
     6449    std::vector<com::Utf8Str> lObjIdMap;
     6450    gTrackedObjectsCollector.getObjIdsByClassIID(IID_IProgress, lObjIdMap);
     6451
     6452    for (const com::Utf8Str& item : lObjIdMap)
     6453    {
     6454        if(gTrackedObjectsCollector.checkObj(item.c_str()))
     6455        {
     6456            TrackedObjectData temp;
     6457            gTrackedObjectsCollector.getObj(item.c_str(), temp);
     6458            Log2(("Tracked Progress Object with objectId %s was found\n", temp.objectIdStr().c_str()));
     6459
     6460            ComPtr<IProgress> pProgress;
     6461            temp.getInterface()->QueryInterface(IID_IProgress, (void **)pProgress.asOutParam());
     6462            if (pProgress.isNotNull())
     6463            {
     6464                Bstr reqId(aId.toString().c_str());
     6465                Bstr foundId;
     6466                hrc = pProgress->COMGETTER(Id)(foundId.asOutParam());
     6467                if (reqId == foundId)
     6468                {
     6469                    BOOL aCompleted;
     6470                    pProgress->COMGETTER(Completed)(&aCompleted);
     6471
     6472                    BOOL aCanceled;
     6473                    pProgress->COMGETTER(Canceled)(&aCanceled);
     6474                    LogRel(("Requested progress was found:\n  id %s\n  completed %s\n  canceled %s\n",
     6475                            aId.toString().c_str(),
     6476                            aCompleted ? "True" : "False",
     6477                            aCanceled ? "True" : "False"));
     6478
     6479                    aProgressObject = pProgress;
     6480                    return S_OK;
     6481                }
     6482            }
     6483        }
     6484    }
     6485#else
    64486486    /* protect mProgressOperations */
    64496487    AutoReadLock safeLock(m->mtxProgressOperations COMMA_LOCKVAL_SRC_POS);
     
    64556493        return S_OK;
    64566494    }
     6495#endif
     6496
    64576497    return setError(E_INVALIDARG,
    64586498                    tr("The progress object with the given GUID could not be found"));
Note: See TracChangeset for help on using the changeset viewer.

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