VirtualBox

Changeset 73825 in vbox for trunk/include/VBox


Ignore:
Timestamp:
Aug 22, 2018 12:51:23 PM (6 years ago)
Author:
vboxsync
Message:

Main/ExtPack: Add extpack helper interface for creating and updating IProgress objects.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/ExtPack/ExtPack.h

    r68828 r73825  
    190190                                                 const char *pszPluginLibrary));
    191191
     192    /**
     193     * Creates an IProgress object instance for a long running extension
     194     * pack provided API operation which is executed asynchronously.
     195     *
     196     * This implicitly creates a cancellable progress object, since anything
     197     * else is user unfriendly. You need to design your code to handle
     198     * cancellation with reasonable response time.
     199     *
     200     * @returns COM status code.
     201     * @param   pHlp            Pointer to this helper structure.
     202     * @param   pInitiator      Pointer to the initiating object.
     203     * @param   pcszDescription Description of the overall task.
     204     * @param   cOperations     Number of operations for this task.
     205     * @param   uTotalOperationsWeight        Overall weight for the entire task.
     206     * @param   pcszFirstOperationDescription Description of the first operation.
     207     * @param   uFirstOperationWeight         Weight for the first operation.
     208     * @param   ppProgressOut   Output parameter for the IProgress object reference.
     209     */
     210    DECLR3CALLBACKMEMBER(uint32_t, pfnCreateProgress,(PCVBOXEXTPACKHLP pHlp, VBOXEXTPACK_IF_CS(IUnknown) *pInitiator,
     211                                                      const char *pcszDescription, uint32_t cOperations,
     212                                                      uint32_t uTotalOperationsWeight, const char *pcszFirstOperationDescription,
     213                                                      uint32_t uFirstOperationWeight, VBOXEXTPACK_IF_CS(IProgress) **ppProgressOut));
     214
     215    /**
     216     * Checks if the Progress object is marked as canceled.
     217     *
     218     * @returns COM status code.
     219     * @param   pHlp            Pointer to this helper structure.
     220     * @param   pProgress       Pointer to the IProgress object reference returned
     221     *                          by pfnCreateProgress.
     222     * @param   pfCanceled      @c true if canceled, @c false otherwise.
     223     */
     224    DECLR3CALLBACKMEMBER(uint32_t, pfnGetCanceledProgress,(PCVBOXEXTPACKHLP pHlp, VBOXEXTPACK_IF_CS(IProgress) *pProgress,
     225                                                           bool *pfCanceled));
     226
     227    /**
     228     * Updates the percentage value of the current operation of the
     229     * Progress object.
     230     *
     231     * @returns COM status code.
     232     * @param   pHlp            Pointer to this helper structure.
     233     * @param   pProgress       Pointer to the IProgress object reference returned
     234     *                          by pfnCreateProgress.
     235     * @param   uPercent        Result of the overall task.
     236     */
     237    DECLR3CALLBACKMEMBER(uint32_t, pfnUpdateProgress,(PCVBOXEXTPACKHLP pHlp, VBOXEXTPACK_IF_CS(IProgress) *pProgress,
     238                                                      uint32_t uPercent));
     239
     240    /**
     241     * Signals that the current operation is successfully completed and
     242     * advances to the next operation. The operation percentage is reset
     243     * to 0.
     244     *
     245     * If the operation count is exceeded this returns an error.
     246     *
     247     * @returns COM status code.
     248     * @param   pHlp            Pointer to this helper structure.
     249     * @param   pProgress       Pointer to the IProgress object reference returned
     250     *                          by pfnCreateProgress.
     251     * @param   pcszNextOperationDescription Description of the next operation.
     252     * @param   uNextOperationWeight         Weight for the next operation.
     253     */
     254    DECLR3CALLBACKMEMBER(uint32_t, pfnNextOperationProgress,(PCVBOXEXTPACKHLP pHlp, VBOXEXTPACK_IF_CS(IProgress) *pProgress,
     255                                                             const char *pcszNextOperationDescription,
     256                                                             uint32_t uNextOperationWeight));
     257
     258    /**
     259     * Marks the whole task as complete and sets the result code.
     260     *
     261     * If the result code indicates a failure then this method will store
     262     * the currently set COM error info from the current thread in the
     263     * the errorInfo attribute of this Progress object instance. If there
     264     * is no error information available then an error is returned.
     265     *
     266     * If the result code indicates success then the task is terminated,
     267     * without paying attention to the current operation being the last.
     268     *
     269     * Note that this must be called only once for the given Progress
     270     * object. Subsequent calls will return errors.
     271     *
     272     * @returns COM status code.
     273     * @param   pHlp            Pointer to this helper structure.
     274     * @param   pProgress       Pointer to the IProgress object reference returned
     275     *                          by pfnCreateProgress.
     276     * @param   uResultCode     Result of the overall task.
     277     */
     278    DECLR3CALLBACKMEMBER(uint32_t, pfnCompleteProgress,(PCVBOXEXTPACKHLP pHlp, VBOXEXTPACK_IF_CS(IProgress) *pProgress,
     279                                                        uint32_t uResultCode));
     280
    192281    DECLR3CALLBACKMEMBER(int, pfnReserved1,(PCVBOXEXTPACKHLP pHlp)); /**< Reserved for minor structure revisions. */
    193282    DECLR3CALLBACKMEMBER(int, pfnReserved2,(PCVBOXEXTPACKHLP pHlp)); /**< Reserved for minor structure revisions. */
     
    201290} VBOXEXTPACKHLP;
    202291/** Current version of the VBOXEXTPACKHLP structure.  */
    203 #define VBOXEXTPACKHLP_VERSION          RT_MAKE_U32(2, 1)
     292#define VBOXEXTPACKHLP_VERSION          RT_MAKE_U32(3, 0)
    204293
    205294
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