本文整理汇总了C++中IEspContext::getClientVersion方法的典型用法代码示例。如果您正苦于以下问题:C++ IEspContext::getClientVersion方法的具体用法?C++ IEspContext::getClientVersion怎么用?C++ IEspContext::getClientVersion使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IEspContext
的用法示例。
在下文中一共展示了IEspContext::getClientVersion方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getNavigationData
void CEspBinding::getNavigationData(IEspContext &context, IPropertyTree & data)
{
IEspWsdlSections *wsdl = dynamic_cast<IEspWsdlSections *>(this);
if (wsdl)
{
StringBuffer serviceName, params;
wsdl->getServiceName(serviceName);
if (!getUrlParams(context.queryRequestParameters(), params))
{
if (context.getClientVersion()>0)
params.appendf("%cver_=%g", params.length()?'&':'?', context.getClientVersion());
}
StringBuffer encodedparams;
if (params.length())
encodeUtf8XML(params.str(), encodedparams, 0);
if (params.length())
params.setCharAt(0,'&'); //the entire params string will follow the initial param: "?form"
VStringBuffer folderpath("Folder[@name='%s']", serviceName.str());
IPropertyTree *folder = data.queryPropTree(folderpath.str());
if(!folder)
{
folder=createPTree("Folder");
folder->addProp("@name", serviceName.str());
folder->addProp("@info", serviceName.str());
folder->addProp("@urlParams", encodedparams);
if (showSchemaLinks())
folder->addProp("@showSchemaLinks", "true");
folder->addPropBool("@isDynamicBinding", isDynamicBinding());
folder->addPropBool("@isBound", isBound());
data.addPropTree("Folder", folder);
}
MethodInfoArray methods;
wsdl->getQualifiedNames(context, methods);
ForEachItemIn(idx, methods)
{
CMethodInfo &method = methods.item(idx);
IPropertyTree *link=createPTree("Link");
link->addProp("@name", method.m_label.str());
link->addProp("@info", method.m_label.str());
StringBuffer path;
path.appendf("../%s/%s?form%s", serviceName.str(), method.m_label.str(),params.str());
link->addProp("@path", path.str());
folder->addPropTree("Link", link);
}
}
示例2: getNavigationData
void CEspBinding::getNavigationData(IEspContext &context, IPropertyTree & data)
{
IEspWsdlSections *wsdl = dynamic_cast<IEspWsdlSections *>(this);
if (wsdl)
{
StringBuffer serviceName, params;
wsdl->getServiceName(serviceName);
if (!getUrlParams(context.queryRequestParameters(), params))
{
if (context.getClientVersion()>0)
params.appendf("&ver_=%g", context.getClientVersion());
}
if (params.length())
params.setCharAt(0,'&');
IPropertyTree *folder=createPTree("Folder");
folder->addProp("@name", serviceName.str());
folder->addProp("@info", serviceName.str());
folder->addProp("@urlParams", params.str());
if (showSchemaLinks())
folder->addProp("@showSchemaLinks", "true");
MethodInfoArray methods;
wsdl->getQualifiedNames(context, methods);
ForEachItemIn(idx, methods)
{
CMethodInfo &method = methods.item(idx);
IPropertyTree *link=createPTree("Link");
link->addProp("@name", method.m_label.str());
link->addProp("@info", method.m_label.str());
StringBuffer path;
path.appendf("../%s/%s?form%s", serviceName.str(), method.m_label.str(),params.str());
link->addProp("@path", path.str());
folder->addPropTree("Link", link);
}
data.addPropTree("Folder", folder);
}
示例3: onStartStopBegin
bool Cws_machineEx::onStartStopBegin( IEspContext &context, IEspStartStopBeginRequest &req,
IEspStartStopBeginResponse &resp)
{
throw MakeStringException(ECLWATCH_INTERNAL_ERROR, "StartStopBegin feature not supported.");
//following code is no longer accessible but will remain for reference
try
{
if (!context.validateFeatureAccess(EXEC_FEATURE_URL, SecAccess_Full, false))
throw MakeStringException(ECLWATCH_EXECUTION_ACCESS_DENIED, "Permission denied.");
StringBuffer addresses;
StringArray& addresses0 = req.getAddresses();
for(unsigned i = 0; i < addresses0.length(); i++)
{
StringBuffer addrStr;
const char* address = addresses0.item(i);
updatePathInAddress(address, addrStr);
if (i > 0)
addresses.appendf("|Addresses_i%d=%s", i+1, addrStr.str());
else
addresses.appendf("Addresses_i1=%s", addrStr.str());
}
resp.setAddresses(addresses);
resp.setKey1(req.getKey1());
resp.setKey2(req.getKey2());
resp.setStop(req.getStop());
double version = context.getClientVersion();
if (version > 1.07)
{
resp.setAutoRefresh( req.getAutoRefresh() );
resp.setMemThreshold(req.getMemThreshold());
resp.setDiskThreshold(req.getDiskThreshold());
resp.setCpuThreshold(req.getCpuThreshold());
resp.setMemThresholdType(req.getMemThresholdType());
resp.setDiskThresholdType(req.getDiskThresholdType());
}
}
catch(IException* e)
{
FORWARDEXCEPTION(context, e, ECLWATCH_INTERNAL_ERROR);
}
return true;
}
示例4: sendRunEclExForm
int CEclDirectSoapBindingEx::sendRunEclExForm(IEspContext &context, CHttpRequest* request, CHttpResponse* response)
{
StringBuffer xml;
xml.append("<RunEclEx clientVersion='").append(context.getClientVersion()).append("'>");
appendXMLTag(xml, "UseEclRepository", (supportRepository) ? "Yes" : "No");
appendXMLTag(xml, "Redirect", (redirect) ? "Yes" : "No");
appendXMLTag(xml, "IncludeResults", (redirect) ? "No" : "Yes");
ForEachItemIn(i, clusters)
appendXMLTag(xml, "Cluster", clusters.item(i));
xml.append("</RunEclEx>");
StringBuffer xslt(getCFD());
xslt.append("./smc_xslt/run_ecl.xslt");
StringBuffer html;
xsltTransform(xml.str(), xslt.str(), NULL, html);
response->setContent(html.str());
response->setContentType(HTTP_TYPE_TEXT_HTML_UTF8);
response->send();
return 0;
}
示例5: onStartStopDone
bool Cws_machineEx::onStartStopDone( IEspContext &context, IEspStartStopDoneRequest &req,
IEspStartStopResponse &resp)
{
throw MakeStringException(ECLWATCH_INTERNAL_ERROR, "StartStopDone feature not supported.");
//following code is no longer accessible but will remain for reference
try
{
if (!context.validateFeatureAccess(EXEC_FEATURE_URL, SecAccess_Full, false))
throw MakeStringException(ECLWATCH_EXECUTION_ACCESS_DENIED, "Permission denied.");
const char*addresses0 = req.getAddresses();
bool bStop = req.getStop();
char* userName = (char*) m_sTestStr1.str();
char* password = (char*) m_sTestStr2.str();
StringArray addresses;
char* pAddr = (char*) addresses0;
while (pAddr)
{
char* ppAddr = strstr(pAddr, "|Addresses_");
if (!ppAddr)
{
char* ppAddr0 = strchr(pAddr, '=');
if (!ppAddr0)
addresses.append(pAddr);
else
addresses.append(ppAddr0+1);
break;
}
else
{
char addr[1024];
strncpy(addr, pAddr, ppAddr - pAddr);
addr[ppAddr - pAddr] = 0;
char* ppAddr0 = strchr(addr, '=');
if (!ppAddr0)
addresses.append(addr);
else
addresses.append(ppAddr0+1);
pAddr = ppAddr + 1;
}
}
doStartStop(context, addresses, userName, password, bStop, resp);
double version = context.getClientVersion();
if (version > 1.07)
{
resp.setAutoRefresh( req.getAutoRefresh() );
resp.setMemThreshold(req.getMemThreshold());
resp.setDiskThreshold(req.getDiskThreshold());
resp.setCpuThreshold(req.getCpuThreshold());
resp.setMemThresholdType(req.getMemThresholdType());
resp.setDiskThresholdType(req.getDiskThresholdType());
}
}
catch(IException* e)
{
FORWARDEXCEPTION(context, e, ECLWATCH_INTERNAL_ERROR);
}
return true;
}
示例6: doStartStop
bool Cws_machineEx::doStartStop(IEspContext &context, StringArray& addresses, char* userName, char* password, bool bStop,
IEspStartStopResponse &resp)
{
bool containCluster = false;
double version = context.getClientVersion();
const int ordinality= addresses.ordinality();
UnsignedArray threadHandles;
IArrayOf<IEspStartStopResult> resultsArray;
for (int index=0; index<ordinality; index++)
{
const char* address0 = addresses.item(index);
//address passed in is of the form "192.168.1.4:EspProcess:2:path1"
StringArray sArray;
sArray.appendList(addresses.item(index), ":");
if (sArray.ordinality() < 4)
throw MakeStringException(ECLWATCH_MISSING_PARAMS, "Incomplete arguments");
Owned<IEspStartStopResult> pResult = static_cast<IEspStartStopResult*>(new CStartStopResult(""));
const char* address = sArray.item(0);
const char* compType= sArray.item(1);
const char* OS = sArray.item(3);//index 2 is component name
const char* path = sArray.item(4);
if (!(address && *address && compType && *compType && OS && *OS && path && *path))
throw MakeStringExceptionDirect(ECLWATCH_INVALID_INPUT, "Invalid input");
if (!stricmp(compType, "ThorCluster") || !stricmp(compType, "RoxieCluster"))
containCluster = true;
#ifndef OLD_START_STOP
{
char* configAddress = NULL;
char* props1 = (char*) strchr(address, '|');
if (props1)
{
configAddress = props1+1;
*props1 = '\0';
}
else
{
configAddress = (char*) address;
}
StringBuffer newAddress;
ConvertAddress(address0, newAddress);
pResult->setAddressOrig ( newAddress.str() );//can be either IP or name of component
pResult->setAddress ( address );//can be either IP or name of component
pResult->setCompType( compType );
if (version > 1.04)
{
pResult->setName( path );
const char* pStr2 = strstr(path, "LexisNexis");
if (pStr2)
{
char name[256];
const char* pStr1 = strchr(pStr2, '|');
if (!pStr1)
{
strcpy(name, pStr2+11);
}
else
{
strncpy(name, pStr2+11, pStr1 - pStr2 -11);
name[pStr1 - pStr2 -11] = 0;
}
pResult->setName( name );
}
}
pResult->setOS( atoi(OS) );
pResult->setPath( path );
resultsArray.append(*pResult.getLink());
CStartStopThreadParam* pThreadReq;
pThreadReq = new CStartStopThreadParam(address, configAddress, bStop, m_useDefaultHPCCInit, this, context);
pThreadReq->setResultObject( pResult );
if (userName && *userName)
pThreadReq->setUserID( userName );
if (password && *password)
pThreadReq->setPassword( password );
PooledThreadHandle handle = m_threadPool->start( pThreadReq );
threadHandles.append(handle);
}
#else
{
StringBuffer newAddress;
ConvertAddress(address0, newAddress);
char* pStr = (char*) strchr(address, '|');;
if (pStr)
pStr[0] = 0;
pResult->setAddressOrig ( newAddress.str() );//can be either IP or name of component
pResult->setAddress ( address );//can be either IP or name of component
//.........这里部分代码省略.........
示例7: onGetInstantQuery
//.........这里部分代码省略.........
if (bProcess)
{
if (bDownloadFile)
return 0;
StringBuffer xml;
Owned<IProperties> params(createProperties());
if (!permission)
{
params->setProp("@method", methodbuf.str());
xml.append("<Environment><ErrorMessage>Permission denied.</ErrorMessage></Environment>");
}
else
{
if(submethod.length() > 0)
params->setProp("@submethod", submethod.str());
params->setProp("@method", methodbuf.str());
if (*sourceLogicalFile.str())
{
params->setProp("@sourceLogicalName", sourceLogicalFile.str());
Owned<IUserDescriptor> userdesc;
StringBuffer username;
context.getUserID(username);
if(username.length() > 0)
{
const char* passwd = context.queryPassword();
userdesc.setown(createUserDescriptor());
userdesc->set(username.str(), passwd, context.querySessionToken(), context.querySignature());
try
{
if (stricmp(method, "CopyInput") == 0)
{
Owned<IDistributedFile> df = queryDistributedFileDirectory().lookup(sourceLogicalFile.str(), userdesc.get());
if(!df)
{
throw MakeStringException(ECLWATCH_FILE_NOT_EXIST,"Could not find file %s.",sourceLogicalFile.str());
}
const char *kind = df->queryAttributes().queryProp("@kind");
if (kind && strcmp(kind,"key")==0)
{
params->setProp("@compressflag", 0);
}
else if(df->isCompressed())
{
params->setProp("@compressflag", 2);
}
else
{
params->setProp("@compressflag", 1);
}
}
}
catch (IException *E)
{
Owned<IXslProcessor> xslp = getXslProcessor();
if (!xslp)
throw E;
Owned<IMultiException> me = MakeMultiException();
me->append(*E);
response->handleExceptions(xslp, me, "FileSpray", method, StringBuffer(getCFD()).append("./smc_xslt/exceptions.xslt").str(), false);
return 0;
}
}
}
else
{
params->setProp("@compressflag", 1);
}
StringBuffer wuid;
request->getParameter("wuid", wuid);
Owned<IPropertyTree> pTree = createPTreeForXslt(context.getClientVersion(), method, wuid.str());
toXML(pTree, xml, false);
}
IProperties* requestparams = request->queryParameters();
if(requestparams && requestparams->hasProp("rawxml_"))
{
response->setContent(xml.str());
response->setContentType(HTTP_TYPE_APPLICATION_XML);
}
else{
StringBuffer htmlbuf;
xsltTransform(xml.str(), xsltFileName.str(), params, htmlbuf);
response->setContent(htmlbuf.str());
response->setContentType(HTTP_TYPE_TEXT_HTML_UTF8);
}
response->send();
return 0;
}
else
return CFileSpraySoapBinding::onGetInstantQuery(context, request, response, service, method);
}