VirtualBox

Ignore:
Timestamp:
Aug 16, 2011 10:34:32 AM (14 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
73520
Message:

VD: Interface cleanup. Merge the two involved structures (generic interface descriptor and callback table) into one, remove the duplicated interface wrappers in the backends and move the interface definitions into separate headers separating public and private interfaces.

File:
1 edited

Legend:

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

    r38455 r38469  
    870870    HRESULT rc = S_OK;
    871871
    872     PVDINTERFACEIO pSha1Callbacks = 0;
    873     PVDINTERFACEIO pTarCallbacks = 0;
     872    PVDINTERFACEIO pSha1Io = 0;
     873    PVDINTERFACEIO pTarIo = 0;
    874874    char *pszFilename = 0;
    875875    do
     
    881881            break;
    882882        }
    883         pSha1Callbacks = Sha1CreateInterface();
    884         if (!pSha1Callbacks)
     883        pSha1Io = Sha1CreateInterface();
     884        if (!pSha1Io)
    885885        {
    886886            rc = E_OUTOFMEMORY;
    887887            break;
    888888        }
    889         pTarCallbacks = TarCreateInterface();
    890         if (!pTarCallbacks)
     889        pTarIo = TarCreateInterface();
     890        if (!pTarIo)
    891891        {
    892892            rc = E_OUTOFMEMORY;
    893893            break;
    894894        }
    895         VDINTERFACE VDInterfaceIO;
    896895        SHA1STORAGE storage;
    897896        RT_ZERO(storage);
    898         vrc = VDInterfaceAdd(&VDInterfaceIO, "Appliance::IOTar",
    899                              VDINTERFACETYPE_IO, pTarCallbacks,
    900                              tar, &storage.pVDImageIfaces);
     897        vrc = VDInterfaceAdd(&pTarIo->Core, "Appliance::IOTar",
     898                             VDINTERFACETYPE_IO, tar, sizeof(VDINTERFACEIO),
     899                             &storage.pVDImageIfaces);
    901900        if (RT_FAILURE(vrc))
    902901        {
     
    904903            break;
    905904        }
    906         rc = readFSImpl(pTask, pszFilename, pSha1Callbacks, &storage);
     905        rc = readFSImpl(pTask, pszFilename, pSha1Io, &storage);
    907906    }while(0);
    908907
     
    912911    if (pszFilename)
    913912        RTMemFree(pszFilename);
    914     if (pSha1Callbacks)
    915         RTMemFree(pSha1Callbacks);
    916     if (pTarCallbacks)
    917         RTMemFree(pTarCallbacks);
     913    if (pSha1Io)
     914        RTMemFree(pSha1Io);
     915    if (pTarIo)
     916        RTMemFree(pTarIo);
    918917
    919918    LogFlowFunc(("rc=%Rhrc\n", rc));
     
    923922}
    924923
    925 HRESULT Appliance::readFSImpl(TaskOVF *pTask, const RTCString &strFilename, PVDINTERFACEIO pCallbacks, PSHA1STORAGE pStorage)
     924HRESULT Appliance::readFSImpl(TaskOVF *pTask, const RTCString &strFilename, PVDINTERFACEIO pIfIo, PSHA1STORAGE pStorage)
    926925{
    927926    LogFlowFuncEnter();
     
    936935        /* Read the OVF into a memory buffer */
    937936        size_t cbSize = 0;
    938         int vrc = Sha1ReadBuf(strFilename.c_str(), &pvTmpBuf, &cbSize, pCallbacks, pStorage);
     937        int vrc = Sha1ReadBuf(strFilename.c_str(), &pvTmpBuf, &cbSize, pIfIo, pStorage);
    939938        if (   RT_FAILURE(vrc)
    940939            || !pvTmpBuf)
     
    13071306    HRESULT rc = S_OK;
    13081307
    1309     PVDINTERFACEIO pSha1Callbacks = 0;
    1310     PVDINTERFACEIO pTarCallbacks = 0;
     1308    PVDINTERFACEIO pSha1Io = 0;
     1309    PVDINTERFACEIO pTarIo = 0;
    13111310    char *pszFilename = 0;
    13121311    void *pvMfBuf = 0;
     
    13151314    {
    13161315        /* Create the necessary file access interfaces. */
    1317         pSha1Callbacks = Sha1CreateInterface();
    1318         if (!pSha1Callbacks)
     1316        pSha1Io = Sha1CreateInterface();
     1317        if (!pSha1Io)
    13191318            throw E_OUTOFMEMORY;
    1320         pTarCallbacks = TarCreateInterface();
    1321         if (!pTarCallbacks)
     1319        pTarIo = TarCreateInterface();
     1320        if (!pTarIo)
    13221321            throw E_OUTOFMEMORY;
    13231322
    1324         VDINTERFACE VDInterfaceIO;
    13251323        SHA1STORAGE storage;
    13261324        RT_ZERO(storage);
    1327         vrc = VDInterfaceAdd(&VDInterfaceIO, "Appliance::IOTar",
    1328                              VDINTERFACETYPE_IO, pTarCallbacks,
    1329                              tar, &storage.pVDImageIfaces);
     1325        vrc = VDInterfaceAdd(&pTarIo->Core, "Appliance::IOTar",
     1326                             VDINTERFACETYPE_IO, tar, sizeof(VDINTERFACEIO),
     1327                             &storage.pVDImageIfaces);
    13301328        if (RT_FAILURE(vrc))
    13311329            throw setError(E_FAIL,
     
    13451343                           tr("Internal error (%Rrc)"), vrc);
    13461344
    1347         PVDINTERFACEIO pCallbacks = pSha1Callbacks;
     1345        PVDINTERFACEIO pCallbacks = pSha1Io;
    13481346        PSHA1STORAGE pStorage = &storage;
    13491347
     
    14001398    if (pvMfBuf)
    14011399        RTMemFree(pvMfBuf);
    1402     if (pSha1Callbacks)
    1403         RTMemFree(pSha1Callbacks);
    1404     if (pTarCallbacks)
    1405         RTMemFree(pTarCallbacks);
     1400    if (pSha1Io)
     1401        RTMemFree(pSha1Io);
     1402    if (pTarIo)
     1403        RTMemFree(pTarIo);
    14061404
    14071405    LogFlowFunc(("rc=%Rhrc\n", rc));
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