⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stafprocosutil.cpp

📁 Software Testing Automation Framework (STAF)的开发代码
💻 CPP
字号:
/*****************************************************************************//* Software Testing Automation Framework (STAF)                              *//* (C) Copyright IBM Corp. 2001                                              *//*                                                                           *//* This software is licensed under the Common Public License (CPL) V1.0.     *//*****************************************************************************/#include "STAFOSTypes.h"#include "STAFProcOSUtil.h"#include "STAFProc.h"#include "STAFUtilWin32.h"static HANDLE sSTAFProcAtomHandle = 0;static HANDLE sDataDirAtomHandle = 0;unsigned int makePerformanceAdjustments(STAFPerfInfo, STAFString &,                                        unsigned int &){    return 0;}BOOL WINAPI CtrlHandler(DWORD ctrlType){    if ((ctrlType == CTRL_C_EVENT) || (ctrlType == CTRL_BREAK_EVENT))    {        (*gShutdownSemaphorePtr)->post();        return TRUE;    }    return FALSE;}unsigned int STAFProcOSInit(STAFString &errorBuffer, unsigned int &osRC){    STAFString STAFAtom;    STAFString globalStr = "";    if (STAFUtilWin32GetWinType() & kSTAFWin2KPlus)    {        // To support Terminal Server and Remote Desktop Connection,        // need to prepend Global\\ for Win2K and above.  If Global\\ is        // not specified, when a user logs into TS or RDC (and they are        // already logged in and running STAFProc with the same STAF instance        // name), the call to CreateEvent will succeed but GetLastError will be        // 0 instead of ERROR_ALREADY_EXISTS, and we will incorrectly continue        // with STAFProc initialization and kill the local interface for the        // existing instance of STAFProc.        globalStr = "Global\\";    }    STAFAtom = globalStr + *gSTAFInstanceNamePtr + "/Started/Atom" +                STAFString(kUTF8_NULL);    sSTAFProcAtomHandle = CreateEvent(        0, TRUE, FALSE, STAFAtom.toCurrentCodePage()->buffer());    if (sSTAFProcAtomHandle == 0)    {        osRC = GetLastError();        errorBuffer = "Error getting STAFProc atom";        return 1;    }    else if (GetLastError() == ERROR_ALREADY_EXISTS)    {        osRC = GetLastError();        errorBuffer = "STAFProc already started";        CloseHandle(sSTAFProcAtomHandle);        return 1;    }    BOOL rc = SetConsoleCtrlHandler(CtrlHandler, TRUE);    if (rc == FALSE)    {        osRC = GetLastError();        errorBuffer = "Error setting console handlers";        CloseHandle(sSTAFProcAtomHandle);        CloseHandle(sDataDirAtomHandle);        return 1;    }    return 0;}unsigned int STAFProcOSLockDataDir(STAFString &errorBuffer, unsigned int &osRC){    STAFString DataDirAtom;        DataDirAtom = *gSTAFWriteLocationPtr + "/DataDir/Atom" +                   STAFString(kUTF8_NULL);    DataDirAtom = DataDirAtom.replace(kUTF8_BSLASH, kUTF8_HYPHEN);        sDataDirAtomHandle = CreateEvent(        0, TRUE, FALSE, DataDirAtom.toCurrentCodePage()->buffer());    if (sDataDirAtomHandle == 0)    {        osRC = GetLastError();        errorBuffer = "Error getting data directory atom";        return 1;    }    else if (GetLastError() == ERROR_ALREADY_EXISTS)    {        osRC = GetLastError();        errorBuffer = "Data directory is already in use";        CloseHandle(sSTAFProcAtomHandle);        return 1;    }    return 0;}unsigned int STAFProcOSTerm(STAFString &errorBuffer, unsigned int &osRC){    if (sSTAFProcAtomHandle != 0) CloseHandle(sSTAFProcAtomHandle);    if (sDataDirAtomHandle != 0) CloseHandle(sDataDirAtomHandle);    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -