mirror of
https://github.com/celisej567/source-engine.git
synced 2026-01-05 22:09:59 +03:00
1
This commit is contained in:
60
devtools/syncfrommirror/Redir.h
Normal file
60
devtools/syncfrommirror/Redir.h
Normal file
@@ -0,0 +1,60 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//
|
||||
//=============================================================================//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Redirector - to redirect the input / output of a console
|
||||
//
|
||||
// Developer: Jeff Lee
|
||||
// Dec 10, 2001
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#if !defined(AFX_REDIR_H__4FB57DC3_29A3_11D5_BB60_006097553C52__INCLUDED_)
|
||||
#define AFX_REDIR_H__4FB57DC3_29A3_11D5_BB60_006097553C52__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
|
||||
class CRedirector
|
||||
{
|
||||
public:
|
||||
CRedirector();
|
||||
virtual ~CRedirector();
|
||||
|
||||
protected:
|
||||
HANDLE m_hThread; // thread to receive the output of the child process
|
||||
HANDLE m_hEvtStop; // event to notify the redir thread to exit
|
||||
DWORD m_dwThreadId; // id of the redir thread
|
||||
DWORD m_dwWaitTime; // wait time to check the status of the child process
|
||||
|
||||
HANDLE m_hStdinWrite; // write end of child's stdin pipe
|
||||
HANDLE m_hStdoutRead; // read end of child's stdout pipe
|
||||
HANDLE m_hChildProcess;
|
||||
|
||||
BOOL LaunchChild(LPCTSTR pszCmdLine, LPCTSTR pszCurrentDirectory,
|
||||
HANDLE hStdOut, HANDLE hStdIn, HANDLE hStdErr);
|
||||
int RedirectStdout();
|
||||
void DestroyHandle(HANDLE& rhObject);
|
||||
|
||||
static DWORD WINAPI OutputThread(LPVOID lpvThreadParam);
|
||||
|
||||
protected:
|
||||
// overrides:
|
||||
virtual void WriteStdOut(LPCSTR pszOutput);
|
||||
virtual void WriteStdError(LPCSTR pszError);
|
||||
|
||||
public:
|
||||
BOOL Open(LPCTSTR pszCmdLine, LPCTSTR pszCurrentDirectory = NULL);
|
||||
virtual void Close();
|
||||
BOOL Printf(PRINTF_FORMAT_STRING LPCTSTR pszFormat, ...);
|
||||
|
||||
void SetWaitTime(DWORD dwWaitTime) { m_dwWaitTime = dwWaitTime; }
|
||||
};
|
||||
|
||||
#endif // !defined(AFX_REDIR_H__4FB57DC3_29A3_11D5_BB60_006097553C52__INCLUDED_)
|
||||
Reference in New Issue
Block a user