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

📄 staftraceservice.cpp

📁 Software Testing Automation Framework (STAF)的开发代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    }    else if(parsedResult->optionTimes("DEFAULTSERVICESTATE") != 0)    {        //set default service tracing state        bool stateToSetTo;        STAFString defaultServiceState;        rc = RESOLVE_STRING_OPTION("DEFAULTSERVICESTATE", defaultServiceState);        if (rc) return STAFServiceResult(rc, errorBuffer);        defaultServiceState = defaultServiceState.upperCase();        if(defaultServiceState == "DISABLED")        {            stateToSetTo = STAFServiceManager::kTraceDisabled;        }        else if (defaultServiceState == "ENABLED")        {            stateToSetTo = STAFServiceManager::kTraceEnabled;        }        else        {            STAFString msg = "Must specify either ENABLED or DISABLED";            return STAFServiceResult(kSTAFInvalidRequestString, msg);        }        STAFServiceManager::setDefaultTraceState(stateToSetTo);    }    return STAFServiceResult(kSTAFOk, result);}STAFServiceResult STAFTraceService::handleEnableDisable(    const STAFServiceRequest &requestInfo){    // Parse the request    STAFCommandParseResultPtr parsedResult = fEnableDisableParser.parse(        requestInfo.fRequest);    if (parsedResult->rc != kSTAFOk)    {        return STAFServiceResult(kSTAFInvalidRequestString,                                 parsedResult->errorBuffer, 0);    }    STAFString errorBuffer;    DEFINE_VAR_POOL_LIST(varPoolList, varPoolListSize, requestInfo);    STAFString result;    STAFString filename;    STAFRC_t rc;        // Verify that the requesting machine/user has at least trust level 5        bool stateToSetTo;    if (parsedResult->optionTimes("ENABLE") != 0)    {        stateToSetTo = STAFServiceManager::kTraceEnabled;        IVALIDATE_TRUST(5, "ENABLE");    }    else //DISABLE    {        stateToSetTo = STAFServiceManager::kTraceDisabled;        IVALIDATE_TRUST(5, "DISABLE");    }    if (parsedResult->optionTimes("ALL") != 0)    {        // Handles ENAGLE|DISABLE ALL        bool doTracepoints = false, doServices = false;        if ((parsedResult->optionTimes("TRACEPOINTS") == 0) &&            (parsedResult->optionTimes("SERVICES") == 0))        {            doTracepoints = true;            doServices = true;        }        if (parsedResult->optionTimes("SERVICES") != 0)            doServices = true;        if (parsedResult->optionTimes("TRACEPOINTS") != 0)            doTracepoints = true;        if (doTracepoints)        {            if(stateToSetTo == STAFServiceManager::kTraceEnabled)                   STAFTrace::traceOn(kSTAFTraceAll);            else                   STAFTrace::traceOff(kSTAFTraceAll);        }        if (doServices)            STAFServiceManager::traceServicesChangeAll(stateToSetTo);    }    else    {        STAFString tracepointList = "";        STAFTracePoint_t tracepointChangeSet = kSTAFTraceNone;        if (parsedResult->optionTimes("TRACEPOINTS") != 0)        {            STAFString tracepoints;            rc = RESOLVE_STRING_OPTION("TRACEPOINTS", tracepoints);            if (rc) return STAFServiceResult(rc, errorBuffer);            tracepointList = tracepoints;        }        if (parsedResult->optionTimes("TRACEPOINT") != 0)        {            STAFString tracepoint;            for (int i = 1, optionCount =                parsedResult->optionTimes("TRACEPOINT"); i <= optionCount; ++i)            {                rc = RESOLVE_INDEXED_STRING_OPTION("TRACEPOINT", i, tracepoint);                if (rc) return STAFServiceResult(rc, errorBuffer);                tracepointList += " " + tracepoint;            }        }        tracepointList = tracepointList.upperCase();        //validate list of tracepoints        for (int i = 0; i < tracepointList.numWords(); ++i )        {            STAFString tracepoint = tracepointList.subWord(i, 1).upperCase();            if (kSTAFTracepointNameMap.find(tracepoint) !=                    kSTAFTracepointNameMap.end())            {                tracepointChangeSet =                    tracepointChangeSet | kSTAFTracepointNameMap[tracepoint];            }            else                return STAFServiceResult(kSTAFInvalidValue, tracepoint);        }        //now handle service tracing        STAFString serviceList = "";        if (parsedResult->optionTimes("SERVICES") != 0)        {            STAFString services;            rc = RESOLVE_STRING_OPTION("SERVICES", services);            if (rc) return STAFServiceResult(rc, errorBuffer);            serviceList = services;        }        if (parsedResult->optionTimes("SERVICE") != 0)        {            STAFString service;            for (int i = 1, optionCount =                parsedResult->optionTimes("SERVICE"); i<= optionCount; ++i)            {                rc = RESOLVE_INDEXED_STRING_OPTION("SERVICE", i, service);                serviceList += " " + service;                if (rc) return STAFServiceResult(rc, errorBuffer);            }        }        //after ensuring there are no errors, make desired changes        serviceList = serviceList.upperCase();        STAFServiceManager::traceServicesChange(serviceList, stateToSetTo);        if(stateToSetTo == STAFServiceManager::kTraceEnabled)            STAFTrace::traceOn(tracepointChangeSet);        else            STAFTrace::traceOff(tracepointChangeSet);    }    return STAFServiceResult(kSTAFOk, result);}STAFServiceResult STAFTraceService::handlePurge(    const STAFServiceRequest &requestInfo){    // Verify that the requesting machine/user has at least trust level 5    IVALIDATE_TRUST(5, "PURGE");    STAFServiceManager::purgeUnregisteredServices();    return STAFServiceResult(kSTAFOk, "");}STAFServiceResult STAFTraceService::handleHelp(    const STAFServiceRequest &requestInfo){    // Verify that the requesting machine/user has at least trust level 1    IVALIDATE_TRUST(1, "HELP");    STAFString result("Trace service help" + *gLineSeparatorPtr +                      *gLineSeparatorPtr);        result += "ENABLE ALL  [ TRACEPOINTS | SERVICES ]" + *gLineSeparatorPtr;    result += "ENABLE TRACEPOINTS <Trace point list> | SERVICES <Service list>" + *gLineSeparatorPtr;    result += "ENABLE TRACEPOINT <Trace point> [TRACEPOINT <Trace point>]..." + *gLineSeparatorPtr;    result += "ENABLE SERVICE <Service> [SERVICE <Service>]..." + *gLineSeparatorPtr;    result += *gLineSeparatorPtr;    result += "DISABLE ALL  [ TRACEPOINTS | SERVICES ]" + *gLineSeparatorPtr;    result += "DISABLE TRACEPOINTS <Trace point list> | SERVICES <Service list>" + *gLineSeparatorPtr;    result += "DISABLE TRACEPOINT <Trace point> [TRACEPOINT <Trace point>]..." + *gLineSeparatorPtr;    result += "DISABLE SERVICE <Service> [SERVICE <Service>]..." + *gLineSeparatorPtr;    result += *gLineSeparatorPtr;    result += "SET DESTINATION TO < STDOUT | STDERR | FILE <File name> >" + *gLineSeparatorPtr;    result += "SET DEFAULTSERVICESTATE < Enabled | Disabled >" + *gLineSeparatorPtr;    result += *gLineSeparatorPtr;    result += "LIST [SETTINGS]" + *gLineSeparatorPtr;    result += *gLineSeparatorPtr;    result += "PURGE" + *gLineSeparatorPtr;    result += *gLineSeparatorPtr;    result += "HELP" + *gLineSeparatorPtr;    return STAFServiceResult(kSTAFOk, result);}STAFString STAFTraceService::spaces(int numSpaces){    STAFString str = "";    for (int i = 0; i < numSpaces; i++)    {        str += " ";    }    return str;}STAFTraceService::STAFTracepointMap STAFTraceService::fillSTAFTracepointMap(){    STAFTracepointMap tMap;    tMap[kSTAFTraceServiceComplete] = "ServiceComplete";    tMap[kSTAFTraceDebug] = "Debug";    tMap[kSTAFTraceDeprecated] = "Deprecated";    tMap[kSTAFTraceError] = "Error";    tMap[kSTAFTraceInfo] = "Info";    tMap[kSTAFTraceRegistration] = "Registration";    tMap[kSTAFTraceRemoteRequests] = "RemoteRequests";    tMap[kSTAFTraceServiceAccessDenied] = "ServiceAccessDenied";    tMap[kSTAFTraceServiceError] = "ServiceError";    tMap[kSTAFTraceServiceManagement] = "ServiceManagement";    tMap[kSTAFTraceServiceRequest] = "ServiceRequest";    tMap[kSTAFTraceServiceResult] = "ServiceResult";    tMap[kSTAFTraceWarning] = "Warning";    return tMap;}STAFTraceService::STAFTracepointNameMap STAFTraceService::fillSTAFTracepointNameMap(){    STAFTracepointNameMap tNameMap;    STAFTracepointMap::iterator tMapIter;    for (tMapIter = kSTAFTracepointMap.begin();        tMapIter != kSTAFTracepointMap.end();        tMapIter++)    {        tNameMap[(tMapIter->second).upperCase()] = tMapIter->first;    }    return tNameMap;}STAFString STAFTraceService::info(unsigned int) const{    return (name() + ": Internal");}STAFTraceService::~STAFTraceService(){   ; /* Do Nothing */}

⌨️ 快捷键说明

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