16ad47ef7a806f45a9b210cea20014b946c4ca2avboxsync * IProgress implementation for Machine::openRemoteSession in VBoxSVC.
c58f1213e628a545081c70e26c6b67a841cff880vboxsync * Copyright (C) 2006-2012 Oracle Corporation
16ad47ef7a806f45a9b210cea20014b946c4ca2avboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
16ad47ef7a806f45a9b210cea20014b946c4ca2avboxsync * available from http://www.virtualbox.org. This file is free software;
16ad47ef7a806f45a9b210cea20014b946c4ca2avboxsync * you can redistribute it and/or modify it under the terms of the GNU
16ad47ef7a806f45a9b210cea20014b946c4ca2avboxsync * General Public License (GPL) as published by the Free Software
16ad47ef7a806f45a9b210cea20014b946c4ca2avboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
16ad47ef7a806f45a9b210cea20014b946c4ca2avboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
16ad47ef7a806f45a9b210cea20014b946c4ca2avboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16ad47ef7a806f45a9b210cea20014b946c4ca2avboxsync * The ProgressProxy class allows proxying the important Progress calls and
16ad47ef7a806f45a9b210cea20014b946c4ca2avboxsync * attributes to a different IProgress object for a period of time.
e07acfb7f2dbb8bb40804024c79fd3139bdb3f24vboxsync VIRTUALBOXBASE_ADD_ERRORINFO_SUPPORT(ProgressProxy, IProgress)
16ad47ef7a806f45a9b210cea20014b946c4ca2avboxsync // IProgress properties
941fd57f76689448d94928ce657a521e215f8671vboxsync STDMETHOD(COMGETTER(Cancelable))(BOOL *aCancelable);
941fd57f76689448d94928ce657a521e215f8671vboxsync STDMETHOD(COMGETTER(TimeRemaining))(LONG *aTimeRemaining);
16ad47ef7a806f45a9b210cea20014b946c4ca2avboxsync STDMETHOD(COMGETTER(ResultCode))(LONG *aResultCode);
16ad47ef7a806f45a9b210cea20014b946c4ca2avboxsync STDMETHOD(COMGETTER(ErrorInfo))(IVirtualBoxErrorInfo **aErrorInfo);
941fd57f76689448d94928ce657a521e215f8671vboxsync //STDMETHOD(COMGETTER(OperationCount))(ULONG *aOperationCount); - not necessary
941fd57f76689448d94928ce657a521e215f8671vboxsync STDMETHOD(COMGETTER(Operation))(ULONG *aOperation);
941fd57f76689448d94928ce657a521e215f8671vboxsync STDMETHOD(COMGETTER(OperationDescription))(BSTR *aOperationDescription);
16ad47ef7a806f45a9b210cea20014b946c4ca2avboxsync STDMETHOD(COMGETTER(OperationPercent))(ULONG *aOperationPercent);
16ad47ef7a806f45a9b210cea20014b946c4ca2avboxsync // IProgress methods
16ad47ef7a806f45a9b210cea20014b946c4ca2avboxsync STDMETHOD(WaitForOperationCompletion)(ULONG aOperation, LONG aTimeout);
16ad47ef7a806f45a9b210cea20014b946c4ca2avboxsync STDMETHOD(SetCurrentOperationProgress)(ULONG aPercent);
16ad47ef7a806f45a9b210cea20014b946c4ca2avboxsync STDMETHOD(SetNextOperation)(IN_BSTR bstrNextOperationDescription, ULONG ulNextOperationsWeight);
16ad47ef7a806f45a9b210cea20014b946c4ca2avboxsync // public methods only for internal purposes
16ad47ef7a806f45a9b210cea20014b946c4ca2avboxsync const char *aText, ...);
e07acfb7f2dbb8bb40804024c79fd3139bdb3f24vboxsync bool setOtherProgressObject(IProgress *pOtherProgress);
16ad47ef7a806f45a9b210cea20014b946c4ca2avboxsync void clearOtherProgressObjectInternal(bool fEarly);
16ad47ef7a806f45a9b210cea20014b946c4ca2avboxsync void copyProgressInfo(IProgress *pOtherProgress, bool fEarly);
16ad47ef7a806f45a9b210cea20014b946c4ca2avboxsync /** The other progress object. This can be NULL. */
941fd57f76689448d94928ce657a521e215f8671vboxsync /** Set if the other progress object has multiple operations. */
941fd57f76689448d94928ce657a521e215f8671vboxsync /** The weight the other progress object started at. */
941fd57f76689448d94928ce657a521e215f8671vboxsync /** The weight of other progress object. */
941fd57f76689448d94928ce657a521e215f8671vboxsync /** The operation number the other progress object started at. */
16ad47ef7a806f45a9b210cea20014b946c4ca2avboxsync#endif /* !____H_PROGRESSPROXYIMPL */