Team Fortress 2 Source Code as on 22/4/2020
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.
|
|
//========= 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
|