VirtualBox

Ignore:
Timestamp:
Apr 26, 2010 5:13:39 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
60655
Message:

Guest Control/Main: Added local process list, added early implementation of IGuest::GetProcessStatus().

File:
1 edited

Legend:

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

    r28641 r28772  
    9696                              IN_BSTR aStdIn, IN_BSTR aStdOut, IN_BSTR aStdErr,
    9797                              IN_BSTR aUserName, IN_BSTR aPassword,
    98                               ULONG aTimeoutMS, ULONG* aPID, IProgress **aProgress);
     98                              ULONG aTimeoutMS, ULONG *aPID, IProgress **aProgress);
    9999    STDMETHOD(GetProcessOutput)(ULONG aPID, ULONG aFlags, ULONG aTimeoutMS, ULONG64 aSize, ComSafeArrayOut(BYTE, aData));
     100    STDMETHOD(GetProcessStatus)(ULONG aPID, ULONG *aReason, ULONG *aExitCode, ULONG *aStatus);
    100101    STDMETHOD(InternalGetStatistics)(ULONG *aCpuUser, ULONG *aCpuKernel, ULONG *aCpuIdle,
    101102                                     ULONG *aMemTotal, ULONG *aMemFree, ULONG *aMemBalloon, ULONG *aMemCache,
     
    124125    struct CallbackContext
    125126    {
    126         uint32_t            mContextID;
    127         void               *pvData;
    128         uint32_t            cbData;
     127        uint32_t                    mContextID;
     128        eVBoxGuestCtrlCallbackType  mType;
     129        void                       *pvData;
     130        uint32_t                    cbData;
    129131        /** Atomic flag whether callback was called. */
    130         volatile bool       bCalled;
     132        volatile bool               bCalled;
    131133        /** Pointer to user-supplied IProgress. */
    132         ComObjPtr<Progress> pProgress;
     134        ComObjPtr<Progress>         pProgress;
    133135    };
    134136    typedef std::list< CallbackContext > CallbackList;
    135137    typedef std::list< CallbackContext >::iterator CallbackListIter;
    136138    typedef std::list< CallbackContext >::const_iterator CallbackListIterConst;
     139
     140    struct GuestProcess
     141    {
     142        uint32_t                 mPID;
     143        uint32_t                 mStatus;
     144        uint32_t                 mReason;
     145        uint32_t                 mExitCode;
     146    };
     147    typedef std::list< GuestProcess > GuestProcessList;
     148    typedef std::list< GuestProcess >::iterator GuestProcessIter;
     149    typedef std::list< GuestProcess >::const_iterator GuestProcessIterConst;
    137150
    138151    int prepareExecuteEnv(const char *pszEnv, void **ppvList, uint32_t *pcbList, uint32_t *pcEnv);
     
    141154    int notifyCtrlExecOut(uint32_t u32Function, PHOSTEXECOUTCALLBACKDATA pData);
    142155    CallbackListIter getCtrlCallbackContextByID(uint32_t u32ContextID);
    143     CallbackListIter getCtrlCallbackContextByPID(uint32_t u32PID);
     156    GuestProcessIter getProcessByPID(uint32_t u32PID);
    144157    void removeCtrlCallbackContext(CallbackListIter it);
    145     uint32_t addCtrlCallbackContext(void *pvData, uint32_t cbData, Progress* pProgress);
     158    uint32_t addCtrlCallbackContext(eVBoxGuestCtrlCallbackType enmType, void *pvData, uint32_t cbData, Progress* pProgress);
    146159# endif
    147160
     
    171184    volatile uint32_t mNextContextID;
    172185    CallbackList mCallbackList;
     186    GuestProcessList mGuestProcessList;
    173187# endif
    174188};
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