Changeset 45415 in vbox for trunk/src/VBox/Main/include/GuestSessionImpl.h
- Timestamp:
- Apr 8, 2013 9:40:42 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/include/GuestSessionImpl.h
r45010 r45415 21 21 22 22 #include "VirtualBoxBase.h" 23 #include "EventImpl.h" 23 24 24 25 #include "GuestCtrlImplPrivate.h" … … 238 239 class ATL_NO_VTABLE GuestSession : 239 240 public VirtualBoxBase, 241 public GuestBase, 240 242 VBOX_SCRIPTABLE_IMPL(IGuestSession) 241 243 { … … 271 273 STDMETHOD(COMGETTER(Directories))(ComSafeArrayOut(IGuestDirectory *, aDirectories)); 272 274 STDMETHOD(COMGETTER(Files))(ComSafeArrayOut(IGuestFile *, aFiles)); 275 STDMETHOD(COMGETTER(EventSource))(IEventSource ** aEventSource); 273 276 /** @} */ 274 277 … … 345 348 const GuestCredentials &getCredentials(void); 346 349 const GuestEnvironment &getEnvironment(void); 350 EventSource *getEventSource(void) { return mEventSource; } 347 351 Utf8Str getName(void); 348 352 ULONG getId(void) { return mData.mSession.mID; } 349 353 static Utf8Str guestErrorToString(int guestRc); 350 int onSessionStatusChange(PVBOXGUESTCTRLHOSTCBCTX pCbCtx, GuestCtrlCallback *pCallback, PVBOXGUESTCTRLHOSTCALLBACK pSvcCbData); 354 HRESULT isReadyExternal(void); 355 int onSessionStatusChange(PVBOXGUESTCTRLHOSTCBCTX pCbCtx, PVBOXGUESTCTRLHOSTCALLBACK pSvcCbData); 351 356 int startSessionIntenal(int *pGuestRc); 352 357 int startSessionAsync(void); 353 358 static DECLCALLBACK(int) 354 359 startSessionThread(RTTHREAD Thread, void *pvUser); 355 Guest *getParent(void) { return m Data.mParent; }360 Guest *getParent(void) { return mParent; } 356 361 uint32_t getProtocolVersion(void) { return mData.mProtocolVersion; } 357 362 int processRemoveFromList(GuestProcess *pProcess); … … 361 366 int sendCommand(uint32_t uFunction, uint32_t uParms, PVBOXHGCMSVCPARM paParms); 362 367 static HRESULT setErrorExternal(VirtualBoxBase *pInterface, int guestRc); 368 int setSessionStatus(GuestSessionStatus_T sessionStatus, int sessionRc); 369 int signalWaiters(GuestSessionWaitResult_T enmWaitResult, int rc /*= VINF_SUCCESS */); 363 370 int startTaskAsync(const Utf8Str &strTaskDesc, GuestSessionTask *pTask, ComObjPtr<Progress> &pProgress); 364 371 int queryInfo(void); 365 372 int waitFor(uint32_t fWaitFlags, ULONG uTimeoutMS, GuestSessionWaitResult_T &waitResult, int *pGuestRc); 373 int waitForStateChange(uint32_t fWaitFlags, uint32_t uTimeoutMS, GuestSessionStatus_T *pSessionStatus, int *pGuestRc); 366 374 /** @} */ 367 375 368 376 private: 377 378 /** Pointer to the parent (Guest). */ 379 Guest *mParent; 380 /** 381 * This can safely be used without holding any locks. 382 * An AutoCaller suffices to prevent it being destroy while in use and 383 * internally there is a lock providing the necessary serialization. 384 */ 385 const ComObjPtr<EventSource> mEventSource; 369 386 370 387 struct Data 371 388 { 372 /** Pointer to the parent (Guest). */373 Guest *mParent;374 389 /** The session credentials. */ 375 390 GuestCredentials mCredentials; … … 381 396 * overwritten/extended by ProcessCreate(Ex). */ 382 397 GuestEnvironment mEnvironment; 383 /** The session callback, needed for communicating384 * with the guest. */385 GuestCtrlCallback mCallback;386 398 /** Directory objects bound to this session. */ 387 399 SessionDirectories mDirectories; … … 402 414 * returned from the guest side. */ 403 415 int mRC; 404 /** How many waiters? At the moment there can only405 * be one. */406 uint32_t mWaitCount;407 /** The actual session event for doing the waits.408 * At the moment we only support one wait a time. */409 GuestSessionWaitEvent *mWaitEvent;410 416 } mData; 411 417 };
Note:
See TracChangeset
for help on using the changeset viewer.