UIMediumEnumerator.h revision ff489fe5b82c21d36459b79f0bd0afc91e49cfeb
/** @file
* VBox Qt GUI - UIMediumEnumerator class declaration.
*/
/*
* Copyright (C) 2013 Oracle Corporation
*
* This file is part of VirtualBox Open Source Edition (OSE), as
* available from http://www.virtualbox.org. This file is free software;
* General Public License (GPL) as published by the Free Software
* Foundation, in version 2 as it comes in the "COPYING" file of the
* VirtualBox OSE distribution. VirtualBox OSE is distributed in the
* hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
*/
#ifndef ___UIMediumEnumerator_h___
#define ___UIMediumEnumerator_h___
/* Qt includes: */
#include <QObject>
/* GUI includes: */
#include "UIMedium.h"
/* Forward declarations: */
/* Typedefs: */
/* Medium-enumerator prototype.
* Manages access to medium information using thread-pool interface. */
{
/* Notifiers: Medium-operations stuff: */
/* Notifiers: Medium-enumeration stuff: */
void sigMediumEnumerationStarted();
void sigMediumEnumerationFinished();
/* Constructor/destructor: */
/* API: Medium-access stuff: */
/* API: Medium-enumeration stuff: */
bool isMediumEnumerationInProgress() const { return m_fMediumEnumerationInProgress; }
void enumerateMediums();
/** Handles machine-data-change and snapshot-change events. */
/** Handles machine-[un]registration events. */
/* Handler: Medium-enumeration stuff: */
/* Helpers: Medium-enumeration stuff: */
void addMediumsToMap(const CMediumVector &inputMediums, UIMediumMap &outputMediums, UIMediumType mediumType);
/* Helpers: Medium re-caching stuff: */
void calculateCachedUsage(const QString &strMachineID, QStringList &previousUIMediumIDs, bool fTakeIntoAccountCurrentStateOnly) const;
void calculateActualUsage(const QString &strMachineID, CMediumMap ¤tCMediums, QStringList ¤tCMediumIDs) const;
void recacheFromActualUsage(const CMediumMap ¤tCMediums, const QStringList ¤tCMediumIDs);
/* Variables: */
};
#endif /* !___UIMediumEnumerator_h___ */