Changeset 50874 in vbox for trunk/src/VBox/Main/include
- Timestamp:
- Mar 25, 2014 6:29:02 PM (11 years ago)
- Location:
- trunk/src/VBox/Main/include
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/include/GuestFileImpl.h
r50618 r50874 62 62 int i_openFile(uint32_t uTimeoutMS, int *pGuestRc); 63 63 int i_readData(uint32_t uSize, uint32_t uTimeoutMS, void* pvData, uint32_t cbData, uint32_t* pcbRead); 64 int i_readDataAt(uint64_t uOffset, uint32_t uSize, uint32_t uTimeoutMS, void* pvData, size_t cbData, size_t* pcbRead); 64 int i_readDataAt(uint64_t uOffset, uint32_t uSize, uint32_t uTimeoutMS, 65 void* pvData, size_t cbData, size_t* pcbRead); 65 66 int i_seekAt(int64_t iOffset, GUEST_FILE_SEEKTYPE eSeekType, uint32_t uTimeoutMS, uint64_t *puOffset); 66 67 static HRESULT i_setErrorExternal(VirtualBoxBase *pInterface, int guestRc); -
trunk/src/VBox/Main/include/GuestProcessImpl.h
r50709 r50874 52 52 static Utf8Str i_guestErrorToString(int guestRc); 53 53 int i_onRemove(void); 54 int i_readData(uint32_t uHandle, uint32_t uSize, uint32_t uTimeoutMS, void *pvData, size_t cbData, uint32_t *pcbRead, int *pGuestRc); 54 int i_readData(uint32_t uHandle, uint32_t uSize, uint32_t uTimeoutMS, void *pvData, 55 size_t cbData, uint32_t *pcbRead, int *pGuestRc); 55 56 static HRESULT i_setErrorExternal(VirtualBoxBase *pInterface, int guestRc); 56 57 int i_startProcess(uint32_t uTimeoutMS, int *pGuestRc); 57 58 int i_startProcessAsync(void); 58 59 int i_terminateProcess(uint32_t uTimeoutMS, int *pGuestRc); 59 static ProcessWaitResult_T i_waitFlagsToResultEx(uint32_t fWaitFlags, ProcessStatus_T oldStatus, ProcessStatus_T newStatus, uint32_t uProcFlags, uint32_t uProtocol); 60 static ProcessWaitResult_T i_waitFlagsToResultEx(uint32_t fWaitFlags, ProcessStatus_T oldStatus, 61 ProcessStatus_T newStatus, uint32_t uProcFlags, 62 uint32_t uProtocol); 60 63 ProcessWaitResult_T i_waitFlagsToResult(uint32_t fWaitFlags); 61 64 int i_waitFor(uint32_t fWaitFlags, ULONG uTimeoutMS, ProcessWaitResult_T &waitResult, int *pGuestRc); 62 int i_waitForInputNotify(GuestWaitEvent *pEvent, uint32_t uHandle, uint32_t uTimeoutMS, ProcessInputStatus_T *pInputStatus, uint32_t *pcbProcessed); 63 int i_waitForOutput(GuestWaitEvent *pEvent, uint32_t uHandle, uint32_t uTimeoutMS, void* pvData, size_t cbData, uint32_t *pcbRead); 64 int i_waitForStatusChange(GuestWaitEvent *pEvent, uint32_t uTimeoutMS, ProcessStatus_T *pProcessStatus, int *pGuestRc); 65 static bool i_waitResultImpliesEx(ProcessWaitResult_T waitResult, ProcessStatus_T procStatus, uint32_t uProcFlags, uint32_t uProtocol); 66 int i_writeData(uint32_t uHandle, uint32_t uFlags, void *pvData, size_t cbData, uint32_t uTimeoutMS, uint32_t *puWritten, int *pGuestRc); 65 int i_waitForInputNotify(GuestWaitEvent *pEvent, uint32_t uHandle, uint32_t uTimeoutMS, 66 ProcessInputStatus_T *pInputStatus, uint32_t *pcbProcessed); 67 int i_waitForOutput(GuestWaitEvent *pEvent, uint32_t uHandle, uint32_t uTimeoutMS, 68 void* pvData, size_t cbData, uint32_t *pcbRead); 69 int i_waitForStatusChange(GuestWaitEvent *pEvent, uint32_t uTimeoutMS, 70 ProcessStatus_T *pProcessStatus, int *pGuestRc); 71 static bool i_waitResultImpliesEx(ProcessWaitResult_T waitResult, ProcessStatus_T procStatus, 72 uint32_t uProcFlags, uint32_t uProtocol); 73 int i_writeData(uint32_t uHandle, uint32_t uFlags, void *pvData, size_t cbData, 74 uint32_t uTimeoutMS, uint32_t *puWritten, int *pGuestRc); 67 75 /** @} */ 68 76 … … 182 190 static int i_run(GuestSession *pGuestSession, const GuestProcessStartupInfo &startupInfo, int *pGuestRc); 183 191 184 static int i_runEx(GuestSession *pGuestSession, const GuestProcessStartupInfo &startupInfo, GuestCtrlStreamObjects *pStrmOutObjects,185 uint32_t cStrmOutObjects, int *pGuestRc);192 static int i_runEx(GuestSession *pGuestSession, const GuestProcessStartupInfo &startupInfo, 193 GuestCtrlStreamObjects *pStrmOutObjects, uint32_t cStrmOutObjects, int *pGuestRc); 186 194 187 195 int i_terminatedOk(LONG *pExitCode); -
trunk/src/VBox/Main/include/GuestSessionImpl.h
r50764 r50874 395 395 int i_directoryRemoveInternal(const Utf8Str &strPath, uint32_t uFlags, int *pGuestRc); 396 396 int i_directoryCreateInternal(const Utf8Str &strPath, uint32_t uMode, uint32_t uFlags, int *pGuestRc); 397 int i_objectCreateTempInternal(const Utf8Str &strTemplate, const Utf8Str &strPath, bool fDirectory, Utf8Str &strName, int *pGuestRc); 398 int i_directoryOpenInternal(const GuestDirectoryOpenInfo &openInfo, ComObjPtr<GuestDirectory> &pDirectory, int *pGuestRc); 397 int i_objectCreateTempInternal(const Utf8Str &strTemplate, const Utf8Str &strPath, bool fDirectory, 398 Utf8Str &strName, int *pGuestRc); 399 int i_directoryOpenInternal(const GuestDirectoryOpenInfo &openInfo, 400 ComObjPtr<GuestDirectory> &pDirectory, int *pGuestRc); 399 401 int i_directoryQueryInfoInternal(const Utf8Str &strPath, GuestFsObjData &objData, int *pGuestRc); 400 402 int i_dispatchToDirectory(PVBOXGUESTCTRLHOSTCBCTX pCtxCb, PVBOXGUESTCTRLHOSTCALLBACK pSvcCb); … … 425 427 Guest *i_getParent(void) { return mParent; } 426 428 uint32_t i_getProtocolVersion(void) { return mData.mProtocolVersion; } 427 int i_pathRenameInternal(const Utf8Str &strSource, const Utf8Str &strDest, uint32_t uFlags, int *pGuestRc); 429 int i_pathRenameInternal(const Utf8Str &strSource, const Utf8Str &strDest, uint32_t uFlags, 430 int *pGuestRc); 428 431 int i_processRemoveFromList(GuestProcess *pProcess); 429 432 int i_processCreateExInteral(GuestProcessStartupInfo &procInfo, ComObjPtr<GuestProcess> &pProgress); … … 434 437 int i_setSessionStatus(GuestSessionStatus_T sessionStatus, int sessionRc); 435 438 int i_signalWaiters(GuestSessionWaitResult_T enmWaitResult, int rc /*= VINF_SUCCESS */); 436 int i_startTaskAsync(const Utf8Str &strTaskDesc, GuestSessionTask *pTask, ComObjPtr<Progress> &pProgress); 439 int i_startTaskAsync(const Utf8Str &strTaskDesc, GuestSessionTask *pTask, 440 ComObjPtr<Progress> &pProgress); 437 441 int i_queryInfo(void); 438 442 int i_waitFor(uint32_t fWaitFlags, ULONG uTimeoutMS, GuestSessionWaitResult_T &waitResult, int *pGuestRc); 439 int i_waitForStatusChange(GuestWaitEvent *pEvent, uint32_t fWaitFlags, uint32_t uTimeoutMS, GuestSessionStatus_T *pSessionStatus, int *pGuestRc); 443 int i_waitForStatusChange(GuestWaitEvent *pEvent, uint32_t fWaitFlags, uint32_t uTimeoutMS, 444 GuestSessionStatus_T *pSessionStatus, int *pGuestRc); 440 445 /** @} */ 441 446 -
trunk/src/VBox/Main/include/ProgressImpl.h
r44528 r50874 20 20 #define ____H_PROGRESSIMPL 21 21 22 #include "ProgressWrap.h" 22 23 #include "VirtualBoxBase.h" 23 24 … … 30 31 */ 31 32 class ATL_NO_VTABLE Progress : 32 public VirtualBoxBase, 33 VBOX_SCRIPTABLE_IMPL(IProgress) 33 public ProgressWrap 34 34 { 35 35 protected: … … 37 37 DECLARE_EMPTY_CTOR_DTOR (Progress) 38 38 39 40 void checkForAutomaticTimeout(void); 39 void i_checkForAutomaticTimeout(void); 41 40 42 41 #if !defined (VBOX_COM_INPROC) … … 48 47 49 48 const Guid mId; 50 const Bstr mDescription;49 const com::Utf8Str mDescription; 51 50 52 51 uint64_t m_ullTimestamp; // progress object creation timestamp, for ETA computation … … 63 62 ComPtr<IVirtualBoxErrorInfo> mErrorInfo; 64 63 65 ULONG m_cOperations; // number of operations (so that progress dialog can display something like 1/3) 64 ULONG m_cOperations; // number of operations (so that progress dialog can 65 // display something like 1/3) 66 66 ULONG m_ulTotalOperationsWeight; // sum of weights of all operations, given to constructor 67 67 68 68 ULONG m_ulOperationsCompletedWeight; // summed-up weight of operations that have been completed; initially 0 69 69 70 ULONG m_ulCurrentOperation; // operations counter, incremented with each setNextOperation() 71 Bstr m_bstrOperationDescription; // name of current operation; initially from constructor, changed with setNextOperation() 70 ULONG m_ulCurrentOperation; // operations counter, incremented with 71 // each setNextOperation() 72 com::Utf8Str m_operationDescription; // name of current operation; initially 73 // from constructor, changed with setNextOperation() 72 74 ULONG m_ulCurrentOperationWeight; // weight of current operation, given to setNextOperation() 73 75 ULONG m_ulOperationPercent; // percentage of current operation, set with setCurrentOperationProgress() … … 75 77 76 78 public: 77 VIRTUALBOXBASE_ADD_ERRORINFO_SUPPORT(Progress, IProgress)78 79 79 DECLARE_NOT_AGGREGATABLE (Progress) 80 81 DECLARE_PROTECT_FINAL_CONSTRUCT()82 83 BEGIN_COM_MAP (Progress)84 VBOX_DEFAULT_INTERFACE_ENTRIES (IProgress)85 END_COM_MAP()86 80 87 81 HRESULT FinalConstruct(); … … 105 99 #endif 106 100 IUnknown *aInitiator, 107 CBSTRaDescription,101 Utf8Str aDescription, 108 102 BOOL aCancelable, 109 103 OUT_GUID aId = NULL) … … 118 112 1, // cOperations 119 113 1, // ulTotalOperationsWeight 120 aDescription, // bstrFirstOperationDescription114 aDescription, // aFirstOperationDescription 121 115 1, // ulFirstOperationWeight 122 116 aId); … … 140 134 #endif 141 135 IUnknown *aInitiator, 142 CBSTRaDescription, BOOL aCancelable,136 Utf8Str aDescription, BOOL aCancelable, 143 137 ULONG cOperations, 144 CBSTR bstrFirstOperationDescription,138 Utf8Str aFirstOperationDescription, 145 139 OUT_GUID aId = NULL) 146 140 { … … 154 148 cOperations, // cOperations 155 149 cOperations, // ulTotalOperationsWeight = cOperations 156 bstrFirstOperationDescription, // bstrFirstOperationDescription150 aFirstOperationDescription, // aFirstOperationDescription 157 151 1, // ulFirstOperationWeight: weigh them all the same 158 152 aId); … … 164 158 #endif 165 159 IUnknown *aInitiator, 166 CBSTRaDescription,160 Utf8Str aDescription, 167 161 BOOL aCancelable, 168 162 ULONG cOperations, 169 163 ULONG ulTotalOperationsWeight, 170 CBSTR bstrFirstOperationDescription,164 Utf8Str aFirstOperationDescription, 171 165 ULONG ulFirstOperationWeight, 172 166 OUT_GUID aId = NULL); … … 174 168 HRESULT init(BOOL aCancelable, 175 169 ULONG aOperationCount, 176 CBSTRaOperationDescription);170 Utf8Str aOperationDescription); 177 171 178 172 // initializer/uninitializer for internal purposes only … … 182 176 #endif 183 177 IUnknown *aInitiator, 184 CBSTRaDescription, OUT_GUID aId = NULL);178 Utf8Str aDescription, OUT_GUID aId = NULL); 185 179 HRESULT init(AutoInitSpan &aAutoInitSpan); 186 180 void init(AutoUninitSpan &aAutoUninitSpan); … … 188 182 void uninit(AutoUninitSpan &aAutoUninitSpan); 189 183 190 // IProgress methods191 STDMETHOD(WaitForCompletion)(LONG aTimeout);192 STDMETHOD(WaitForOperationCompletion)(ULONG aOperation, LONG aTimeout);193 STDMETHOD(WaitForAsyncProgressCompletion)(IProgress *pProgressAsync);194 STDMETHOD(Cancel)();195 196 STDMETHOD(SetCurrentOperationProgress)(ULONG aPercent);197 STDMETHOD(SetNextOperation)(IN_BSTR bstrNextOperationDescription, ULONG ulNextOperationsWeight);198 184 199 185 // public methods only for internal purposes 200 201 HRESULT setResultCode(HRESULT aResultCode); 202 203 HRESULT notifyComplete(HRESULT aResultCode); 204 HRESULT notifyComplete(HRESULT aResultCode, 205 const GUID &aIID, 206 const char *pcszComponent, 207 const char *aText, 208 ...); 209 HRESULT notifyCompleteV(HRESULT aResultCode, 210 const GUID &aIID, 211 const char *pcszComponent, 212 const char *aText, 213 va_list va); 214 bool notifyPointOfNoReturn(void); 215 216 // IProgress properties 217 STDMETHOD(COMGETTER(Id)) (BSTR *aId); 218 STDMETHOD(COMGETTER(Description)) (BSTR *aDescription); 219 STDMETHOD(COMGETTER(Initiator)) (IUnknown **aInitiator); 220 221 // IProgress properties 222 STDMETHOD(COMGETTER(Cancelable)) (BOOL *aCancelable); 223 STDMETHOD(COMGETTER(Percent)) (ULONG *aPercent); 224 STDMETHOD(COMGETTER(TimeRemaining)) (LONG *aTimeRemaining); 225 STDMETHOD(COMGETTER(Completed)) (BOOL *aCompleted); 226 STDMETHOD(COMGETTER(Canceled)) (BOOL *aCanceled); 227 STDMETHOD(COMGETTER(ResultCode)) (LONG *aResultCode); 228 STDMETHOD(COMGETTER(ErrorInfo)) (IVirtualBoxErrorInfo **aErrorInfo); 229 STDMETHOD(COMGETTER(OperationCount)) (ULONG *aOperationCount); 230 STDMETHOD(COMGETTER(Operation)) (ULONG *aOperation); 231 STDMETHOD(COMGETTER(OperationDescription)) (BSTR *aOperationDescription); 232 STDMETHOD(COMGETTER(OperationPercent)) (ULONG *aOperationPercent); 233 STDMETHOD(COMGETTER(OperationWeight)) (ULONG *aOperationWeight); 234 STDMETHOD(COMSETTER(Timeout)) (ULONG aTimeout); 235 STDMETHOD(COMGETTER(Timeout)) (ULONG *aTimeout); 186 HRESULT i_setResultCode(HRESULT aResultCode); 187 188 HRESULT i_notifyComplete(HRESULT aResultCode); 189 HRESULT i_notifyComplete(HRESULT aResultCode, 190 const GUID &aIID, 191 const char *pcszComponent, 192 const char *aText, 193 ...); 194 HRESULT i_notifyCompleteV(HRESULT aResultCode, 195 const GUID &aIID, 196 const char *pcszComponent, 197 const char *aText, 198 va_list va); 199 bool i_notifyPointOfNoReturn(void); 236 200 237 201 // public methods only for internal purposes 238 239 bool setCancelCallback(void (*pfnCallback)(void *), void *pvUser); 240 202 bool i_setCancelCallback(void (*pfnCallback)(void *), void *pvUser); 241 203 242 204 // unsafe inline public methods for internal purposes only (ensure there is 243 205 // a caller and a read lock before calling them!) 244 BOOL getCompleted() const { return mCompleted; }245 HRESULT getResultCode() const { return mResultCode; }246 double calcTotalPercent();206 BOOL i_getCompleted() const { return mCompleted; } 207 HRESULT i_getResultCode() const { return mResultCode; } 208 double i_calcTotalPercent(); 247 209 248 210 private: 211 212 // Wrapped IProgress Data 213 HRESULT getId(com::Guid &aId); 214 HRESULT getDescription(com::Utf8Str &aDescription); 215 HRESULT getInitiator(ComPtr<IUnknown> &aInitiator); 216 HRESULT getCancelable(BOOL *aCancelable); 217 HRESULT getPercent(ULONG *aPercent); 218 HRESULT getTimeRemaining(LONG *aTimeRemaining); 219 HRESULT getCompleted(BOOL *aCompleted); 220 HRESULT getCanceled(BOOL *aCanceled); 221 HRESULT getResultCode(LONG *aResultCode); 222 HRESULT getErrorInfo(ComPtr<IVirtualBoxErrorInfo> &aErrorInfo); 223 HRESULT getOperationCount(ULONG *aOperationCount); 224 HRESULT getOperation(ULONG *aOperation); 225 HRESULT getOperationDescription(com::Utf8Str &aOperationDescription); 226 HRESULT getOperationPercent(ULONG *aOperationPercent); 227 HRESULT getOperationWeight(ULONG *aOperationWeight); 228 HRESULT getTimeout(ULONG *aTimeout); 229 HRESULT setTimeout(ULONG aTimeout); 230 HRESULT setCurrentOperationProgress(ULONG aPercent); 231 HRESULT setNextOperation(const com::Utf8Str &aNextOperationDescription, 232 ULONG aNextOperationsWeight); 233 234 // Wrapped Iprogress methods 235 HRESULT waitForCompletion(LONG aTimeout); 236 HRESULT waitForOperationCompletion(ULONG aOperation, 237 LONG aTimeout); 238 HRESULT waitForAsyncProgressCompletion(const ComPtr<IProgress> &aPProgressAsync); 239 HRESULT cancel(); 240 249 241 250 242 RTSEMEVENTMULTI mCompletedSem;
Note:
See TracChangeset
for help on using the changeset viewer.