VirtualBox

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


Ignore:
Timestamp:
Aug 22, 2012 3:34:37 PM (12 years ago)
Author:
vboxsync
Message:

GuestSessionImplTasks/Update Additions: Get rid of the env var hacks, use guest properties to detect guest OS + installation paths, revamped code.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/include/GuestSessionImpl.h

    r42898 r42924  
    4949    virtual int RunAsync(const Utf8Str &strDesc, ComObjPtr<Progress> &pProgress) = 0;
    5050
     51protected:
     52
     53    int getGuestProperty(const ComObjPtr<Guest> &pGuest,
     54                         const Utf8Str &strPath, Utf8Str &strValue);
    5155    int setProgress(ULONG uPercent);
    5256    int setProgressSuccess(void);
     
    139143protected:
    140144
     145    /**
     146     * Suported OS types for automatic updating.
     147     */
     148    enum eOSType
     149    {
     150        eOSType_Unknown = 0,
     151        eOSType_Windows = 1,
     152        eOSType_Linux   = 2,
     153        eOSType_Solaris = 3
     154    };
     155
     156    /**
     157     * Structure representing a file to
     158     * get off the .ISO, copied to the guest.
     159     */
     160    struct InstallerFile
     161    {
     162        InstallerFile(const Utf8Str &strSource,
     163                      const Utf8Str &strDest,
     164                      uint32_t       fFlags = 0)
     165            : strSource(strSource),
     166              strDest(strDest),
     167              fFlags(fFlags) { }
     168
     169        InstallerFile(const Utf8Str          &strSource,
     170                      const Utf8Str          &strDest,
     171                      uint32_t                fFlags,
     172                      GuestProcessStartupInfo startupInfo)
     173            : strSource(strSource),
     174              strDest(strDest),
     175              fFlags(fFlags),
     176              mProcInfo(startupInfo)
     177        {
     178            mProcInfo.mCommand = strDest;
     179            mProcInfo.mName = strDest;
     180        }
     181
     182        /** Source file on .ISO. */
     183        Utf8Str                 strSource;
     184        /** Destination file on the guest. */
     185        Utf8Str                 strDest;
     186        /** File flags. */
     187        uint32_t                fFlags;
     188        /** Optional arguments if this file needs to be
     189         *  executed. */
     190        GuestProcessStartupInfo mProcInfo;
     191    };
     192
    141193    int copyFileToGuest(GuestSession *pSession, PRTISOFSFILE pISO,
    142194                        Utf8Str const &strFileSource, const Utf8Str &strFileDest,
     
    144196    int runFile(GuestSession *pSession, GuestProcessStartupInfo &procInfo);
    145197
     198    /** Files to handle. */
     199    std::vector<InstallerFile> mFiles;
    146200    /** The (optionally) specified Guest Additions .ISO on the host
    147201     *  which will be used for the updating process. */
    148     Utf8Str  mSource;
     202    Utf8Str                    mSource;
    149203    /** Update flags. */
    150     uint32_t mFlags;
     204    uint32_t                   mFlags;
    151205};
    152206
     
    223277                               IGuestProcess **aProcess);
    224278    STDMETHOD(ProcessGet)(ULONG aPID, IGuestProcess **aProcess);
    225 #if 0
    226     STDMETHOD(SetTimeout)(ULONG aTimeoutMS);
    227 #endif
    228279    STDMETHOD(SymlinkCreate)(IN_BSTR aSource, IN_BSTR aTarget, SymlinkType_T aType);
    229280    STDMETHOD(SymlinkExists)(IN_BSTR aSymlink, BOOL *aExists);
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