You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.1 KiB
64 lines
2.1 KiB
//========= 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
|
|
|