|
//====================================================================
// Although great care has gone into developing this software,
// it is provided without any guarantee of reliability, accuracy
// of information, or correctness of operation. I am not responsible
// for any damages that may occur as a result of using this software.
// Use this software entirely at your own risk.
// Copyright 2003, Chris Richardson
//
// Description: Include finder thread, and some helper classes.
//
//====================================================================
#if !defined(AFX_INCLUDEFINDER_H__C1B0141E_479A_40B4_ACC5_5DCC0CC48827__INCLUDED_)
#define AFX_INCLUDEFINDER_H__C1B0141E_479A_40B4_ACC5_5DCC0CC48827__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "global.h"
#include "ParsedFile.h"
class CStatusNotifier;
class CFileIterator;
class CIncludeFinderInfo
{
public:
CIncludeFinderInfo();
~CIncludeFinderInfo();
void SetOptions( CFileIterator * p_poFileIterator,
BOOL p_bPreprocess );
// Input:
CFileIterator * c_poFileIterator;
BOOL c_bPreprocess;
CStatusNotifier * c_poStatusNotifier;
// Final output:
CParsedFileList c_oResults;
COleDateTime c_oStartTime;
COleDateTime c_oStopTime;
unsigned long c_ulFilesProcessed;
};
class CIncludeFinder
{
public:
CIncludeFinder();
virtual ~CIncludeFinder();
inline void SetInfo( CIncludeFinderInfo * p_poInfo );
virtual unsigned long Stop( unsigned long p_ulTimeout = INFINITE );
virtual unsigned long Start( unsigned long p_ulStackSize = 1<<20 );
BOOL IsRunning();
protected:
CIncludeFinderInfo * c_poInfo;
unsigned long c_ulThreadID;
HANDLE c_hThread;
HANDLE c_hStopEvent;
virtual unsigned long ThreadLoop();
virtual BOOL IsTimeToStop( unsigned long p_ulTimeout = 0 );
static unsigned long __stdcall ThreadProcedure( void * p_pvParam );
};
inline void CIncludeFinder::SetInfo( CIncludeFinderInfo * p_poInfo )
{
c_poInfo = p_poInfo;
}
#endif // !defined(AFX_INCLUDEFINDER_H__C1B0141E_479A_40B4_ACC5_5DCC0CC48827__INCLUDED_)
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.