diff options
Diffstat (limited to 'public/vstdlib/iprocessutils.h')
| -rw-r--r-- | public/vstdlib/iprocessutils.h | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/public/vstdlib/iprocessutils.h b/public/vstdlib/iprocessutils.h new file mode 100644 index 0000000..8e4d37f --- /dev/null +++ b/public/vstdlib/iprocessutils.h @@ -0,0 +1,64 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//===========================================================================// + +#ifndef IPROCESSUTILS_H +#define IPROCESSUTILS_H + +#ifdef _WIN32 +#pragma once +#endif + + +#include "appframework/IAppSystem.h" + + +//----------------------------------------------------------------------------- +// Handle to a process +//----------------------------------------------------------------------------- +typedef int ProcessHandle_t; +enum +{ + PROCESS_HANDLE_INVALID = 0, +}; + + +//----------------------------------------------------------------------------- +// Interface version +//----------------------------------------------------------------------------- +#define PROCESS_UTILS_INTERFACE_VERSION "VProcessUtils001" + + +//----------------------------------------------------------------------------- +// Interface for makefiles to build differently depending on where they are run from +//----------------------------------------------------------------------------- +abstract_class IProcessUtils : public IAppSystem +{ +public: + // Starts, stops a process + virtual ProcessHandle_t StartProcess( const char *pCommandLine, bool bConnectStdPipes ) = 0; + virtual ProcessHandle_t StartProcess( int argc, const char **argv, bool bConnectStdPipes ) = 0; + virtual void CloseProcess( ProcessHandle_t hProcess ) = 0; + virtual void AbortProcess( ProcessHandle_t hProcess ) = 0; + + // Returns true if a process is complete + virtual bool IsProcessComplete( ProcessHandle_t hProcess ) = 0; + + // Waits until a process is complete + virtual void WaitUntilProcessCompletes( ProcessHandle_t hProcess ) = 0; + + // Methods used to write input into a process + virtual int SendProcessInput( ProcessHandle_t hProcess, char *pBuf, int nBufLen ) = 0; + + // Methods used to read output back from a process + virtual int GetProcessOutputSize( ProcessHandle_t hProcess ) = 0; + virtual int GetProcessOutput( ProcessHandle_t hProcess, char *pBuf, int nBufLen ) = 0; + + // Returns the exit code for the process. Doesn't work unless the process is complete + virtual int GetProcessExitCode( ProcessHandle_t hProcess ) = 0; +}; + + +#endif // IPROCESSUTILS_H |