Leaked source code of windows server 2003
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.
 
 
 
 
 
 

139 lines
2.7 KiB

/*===================================================================
Microsoft
Microsoft Confidential.
Copyright 1997 Microsoft Corporation. All Rights Reserved.
Component: VPTOOL a WAMREG unit testing tool
File: util.cpp
Owner: leijin
Description:
Contains utility functions used by vptool.
Including Debugging, timing, helping functions.
Note:
===================================================================*/
#ifndef _VPTOOL_UTIL_H_
#define _VPTOOL_UTIL_H_
#include <stdio.h>
#include <wtypes.h>
enum eCommand
{
eCommand_INSTALL = 1,
eCommand_UNINSTALL,
eCommand_UPGRADE,
eCommand_CREATEINPROC,
eCommand_CREATEOUTPROC,
eCommand_CREATEINPOOL,
eCommand_DELETE,
eCommand_GETSTATUS,
eCommand_UNLOAD,
eCommand_DELETEREC,
eCommand_RECOVER,
eCommand_GETSIGNATURE,
eCommand_SERIALIZE,
eCommand_DESERIALIZE,
eCommand_HELP,
eCommand_2CREATE,
eCommand_2DELETE,
eCommand_2CREATEPOOL,
eCommand_2DELETEPOOL,
eCommand_2ENUMPOOL,
eCommand_2RECYCLEPOOL,
eCommand_2GETMODE,
eCommand_2TestConn
};
struct CommandParam
{
eCommand eCmd;
char *szCommandLineSwitch;
char *szMetabasePath;
bool fRequireMDPath;
};
typedef struct CommandParam CommandParam;
BOOL ParseCommandLine(int argc, char **argv);
void PrintHelp(BOOL fAdvanced = FALSE);
DWORD Timer();
VOID Report_Time(double ElaspedSec);
extern const UINT rgComMax;
extern CommandParam g_Command;
//
//
struct VP_Options
{
BOOL fEnableTimer;
};
extern VP_Options g_Options;
//-----------------------------------------------------------------------------
// CStopWatch
//-----------------------------------------------------------------------------
// This class implements a simple stopwatch timer.
class CStopWatch
{
public:
CStopWatch()
{
Reset();
}
//~CStopWatch()
//{ }
void Start()
{
QueryPerformanceCounter( (LARGE_INTEGER *) &m_liBeg );
}
void Stop()
{
//LARGE_INTEGER liTmp;
__int64 liEnd;
QueryPerformanceCounter( (LARGE_INTEGER *) &liEnd );
m_liTotal += liEnd - m_liBeg;
}
void Reset()
{
m_liBeg = m_liTotal = 0;
}
// Return time in seconds.
double GetElapsedSec()
{
//LARGE_INTEGER liFreq;
__int64 liFreq;
QueryPerformanceFrequency( (LARGE_INTEGER *) &liFreq ); // Counts/sec
if (liFreq == 0)
{
// Who knows? Hardware does not support.
// Maybe millisec?
// This is rare; modern PC's return liFreq.
liFreq = 1000;
}
return (double) m_liTotal / (double) liFreq;
}
private:
//LARGE_INTEGER m_liBeg;
//LARGE_INTEGER m_liTotal;
__int64 m_liBeg;
__int64 m_liTotal;
};
#endif // _VPTOOL_UTIL_H