version 1.81.2.11, 2014/06/12 20:35:16
|
version 1.82, 2011/01/20 13:09:09
|
|
|
#include <iostream> | #include <iostream> |
#include <fstream> | #include <fstream> |
#include <Pegasus/Common/Network.h> | #include <Pegasus/Common/Network.h> |
#include <Pegasus/Common/Logger.h> |
|
| |
PEGASUS_USING_STD; | PEGASUS_USING_STD; |
| |
|
|
CIMClientRep::CIMClientRep(Uint32 timeoutMilliseconds) | CIMClientRep::CIMClientRep(Uint32 timeoutMilliseconds) |
: | : |
MessageQueue(PEGASUS_QUEUENAME_CLIENT), | MessageQueue(PEGASUS_QUEUENAME_CLIENT), |
_binaryResponse(false), |
|
_timeoutMilliseconds(timeoutMilliseconds), | _timeoutMilliseconds(timeoutMilliseconds), |
_connected(false), | _connected(false), |
_doReconnect(false), | _doReconnect(false), |
_binaryRequest(false), | _binaryRequest(false), |
|
_binaryResponse(false), |
_localConnect(false) | _localConnect(false) |
{ | { |
// | // |
|
|
{ | { |
} | } |
| |
|
Uint32 _getShowType(String& s) |
|
{ |
|
String log = "log"; |
|
String con = "con"; |
|
String both = "both"; |
|
if (s == log) |
|
return 2; |
|
if (s == con) |
|
return 1; |
|
if (s == both) |
|
return 3; |
|
return 0; |
|
} |
|
|
void CIMClientRep::_connect(bool binaryRequest, bool binaryResponse) | void CIMClientRep::_connect(bool binaryRequest, bool binaryResponse) |
{ | { |
ClientTrace::setup(); |
// |
|
// Test for Display optons of the form |
|
// Use Env variable PEGASUS_CLIENT_TRACE= <intrace> : <outtrace |
|
// intrace = "con" | "log" | "both" |
|
// outtrace = intrace |
|
// ex set PEGASUS_CLIENT_TRACE=BOTH:BOTH traces input and output |
|
// to console and log |
|
// Keywords are case insensitive. |
|
// PEP 90 |
|
// |
|
Uint32 showOutput = 0; |
|
Uint32 showInput = 0; |
|
#ifdef PEGASUS_CLIENT_TRACE_ENABLE |
|
String input; |
|
if (char * envVar = getenv("PEGASUS_CLIENT_TRACE")) |
|
{ |
|
input = envVar; |
|
input.toLower(); |
|
String io; |
|
Uint32 pos = input.find(':'); |
|
if (pos == PEG_NOT_FOUND) |
|
pos = 0; |
|
else |
|
io = input.subString(0,pos); |
|
|
|
// some compilers do not allow temporaries to be passed to a |
|
// reference argument - so break into 2 lines |
|
String out = input.subString(pos + 1); |
|
showOutput = _getShowType(out); |
|
|
|
showInput = _getShowType(io); |
|
} |
|
#endif |
| |
// | // |
// Create response decoder: | // Create response decoder: |
// | // |
AutoPtr<CIMOperationResponseDecoder> responseDecoder( | AutoPtr<CIMOperationResponseDecoder> responseDecoder( |
new CIMOperationResponseDecoder( | new CIMOperationResponseDecoder( |
this, _requestEncoder.get(), &_authenticator )); |
this, _requestEncoder.get(), &_authenticator, showInput)); |
| |
// | // |
// Attempt to establish a connection: | // Attempt to establish a connection: |
|
|
| |
AutoPtr<CIMOperationRequestEncoder> requestEncoder( | AutoPtr<CIMOperationRequestEncoder> requestEncoder( |
new CIMOperationRequestEncoder( | new CIMOperationRequestEncoder( |
httpConnection.get(), connectHost, &_authenticator, |
httpConnection.get(), connectHost, &_authenticator, showOutput, |
binaryRequest, | binaryRequest, |
binaryResponse)); | binaryResponse)); |
| |
|
|
_httpConnection->setSocketWriteTimeout(_timeoutMilliseconds/1000+1); | _httpConnection->setSocketWriteTimeout(_timeoutMilliseconds/1000+1); |
} | } |
| |
void CIMClientRep::_disconnect(bool keepChallengeStatus) |
void CIMClientRep::_disconnect() |
{ | { |
if (_connected) | if (_connected) |
{ | { |
|
|
// Let go of the cached request message if we have one | // Let go of the cached request message if we have one |
_authenticator.setRequestMessage(0); | _authenticator.setRequestMessage(0); |
| |
if (keepChallengeStatus == false) |
|
{ |
|
// Reset the challenge status | // Reset the challenge status |
_authenticator.resetChallengeStatus(); | _authenticator.resetChallengeStatus(); |
} | } |
} |
|
| |
void CIMClientRep::connect( | void CIMClientRep::connect( |
const String& host, | const String& host, |
|
|
return response->retValue; | return response->retValue; |
} | } |
| |
// EXP_PULL_BEGIN |
|
CIMResponseData CIMClientRep::openEnumerateInstances( |
|
CIMEnumerationContext& enumerationContext, |
|
Boolean& endOfSequence, |
|
const CIMNamespaceName& nameSpace, |
|
const CIMName& className, |
|
Boolean deepInheritance, |
|
Boolean includeClassOrigin, |
|
const CIMPropertyList& propertyList, |
|
const String& filterQueryLanguage, |
|
const String& filterQuery, |
|
const Uint32Arg& operationTimeout, |
|
Boolean continueOnError, |
|
Uint32 maxObjectCount) |
|
{ |
|
// Save requied information in enumerationContext |
|
enumerationContext.setNameSpace(nameSpace); |
|
|
|
// Create/send the request message |
|
AutoPtr<CIMRequestMessage> request( |
|
new CIMOpenEnumerateInstancesRequestMessage( |
|
String::EMPTY, // messageId_ param |
|
nameSpace, |
|
className, |
|
deepInheritance, |
|
includeClassOrigin, |
|
propertyList, |
|
filterQueryLanguage, |
|
filterQuery, |
|
operationTimeout, |
|
continueOnError, |
|
maxObjectCount, |
|
QueueIdStack())); |
|
|
|
Message* message = |
|
_doRequest(request, CIM_OPEN_ENUMERATE_INSTANCES_RESPONSE_MESSAGE); |
|
|
|
// When Response received, get response message, get output parameters |
|
// and return data |
|
CIMOpenEnumerateInstancesResponseMessage* response = |
|
(CIMOpenEnumerateInstancesResponseMessage*)message; |
|
|
|
AutoPtr<CIMOpenEnumerateInstancesResponseMessage> destroyer(response); |
|
|
|
// set endOfSequence and context return parameters |
|
endOfSequence = response->endOfSequence; |
|
enumerationContext.setContextString(response->enumerationContext); |
|
|
|
return response->getResponseData(); |
|
} |
|
|
|
|
|
CIMResponseData CIMClientRep::openEnumerateInstancePaths( |
|
CIMEnumerationContext& enumerationContext, |
|
Boolean& endOfSequence, |
|
const CIMNamespaceName& nameSpace, |
|
const CIMName& className, |
|
const String& filterQueryLanguage, |
|
const String& filterQuery, |
|
const Uint32Arg& operationTimeout, |
|
Boolean continueOnError, |
|
Uint32 maxObjectCount) |
|
{ |
|
AutoPtr<CIMRequestMessage> request( |
|
new CIMOpenEnumerateInstancePathsRequestMessage( |
|
String::EMPTY, // messageId_ param |
|
nameSpace, |
|
className, |
|
filterQueryLanguage, |
|
filterQuery, |
|
operationTimeout, |
|
continueOnError, |
|
maxObjectCount, |
|
QueueIdStack())); |
|
|
|
enumerationContext.setNameSpace(nameSpace); |
|
Message* message = |
|
_doRequest(request, CIM_OPEN_ENUMERATE_INSTANCE_PATHS_RESPONSE_MESSAGE); |
|
|
|
CIMOpenEnumerateInstancePathsResponseMessage* response = |
|
(CIMOpenEnumerateInstancePathsResponseMessage*)message; |
|
|
|
AutoPtr<CIMOpenEnumerateInstancePathsResponseMessage> destroyer(response); |
|
|
|
// set paramters to be returned to caller |
|
endOfSequence = response->endOfSequence; |
|
enumerationContext.setContextString(response->enumerationContext); |
|
|
|
return response->getResponseData(); |
|
} |
|
|
|
CIMResponseData CIMClientRep::openReferenceInstances( |
|
CIMEnumerationContext& enumerationContext, |
|
Boolean& endOfSequence, |
|
const CIMNamespaceName& nameSpace, |
|
const CIMObjectPath& objectName, |
|
const CIMName& resultClass, |
|
const String& role, |
|
Boolean includeClassOrigin, |
|
const CIMPropertyList& propertyList, |
|
const String& filterQueryLanguage, |
|
const String& filterQuery, |
|
const Uint32Arg& operationTimeout, |
|
Boolean continueOnError, |
|
Uint32 maxObjectCount) |
|
{ |
|
AutoPtr<CIMRequestMessage> request( |
|
new CIMOpenReferenceInstancesRequestMessage( |
|
String::EMPTY, // messageId_ param |
|
nameSpace, |
|
objectName, |
|
resultClass, |
|
role, |
|
includeClassOrigin, |
|
propertyList, |
|
filterQueryLanguage, |
|
filterQuery, |
|
operationTimeout, |
|
continueOnError, |
|
maxObjectCount, |
|
QueueIdStack())); |
|
|
|
enumerationContext.setNameSpace(nameSpace); |
|
Message* message = |
|
_doRequest(request, CIM_OPEN_REFERENCE_INSTANCES_RESPONSE_MESSAGE); |
|
|
|
CIMOpenReferenceInstancesResponseMessage* response = |
|
(CIMOpenReferenceInstancesResponseMessage*)message; |
|
|
|
AutoPtr<CIMOpenReferenceInstancesResponseMessage> destroyer(response); |
|
|
|
// set paramters to be returned to caller |
|
endOfSequence = response->endOfSequence; |
|
enumerationContext.setContextString(response->enumerationContext); |
|
|
|
return response->getResponseData(); |
|
} |
|
|
|
|
|
CIMResponseData CIMClientRep::openReferenceInstancePaths( |
|
CIMEnumerationContext& enumerationContext, |
|
Boolean& endOfSequence, |
|
const CIMNamespaceName& nameSpace, |
|
const CIMObjectPath& objectName, |
|
const CIMName& resultClass, |
|
const String& role, |
|
const String& filterQueryLanguage, |
|
const String& filterQuery, |
|
const Uint32Arg& operationTimeout, |
|
Boolean continueOnError, |
|
Uint32 maxObjectCount) |
|
{ |
|
AutoPtr<CIMRequestMessage> request( |
|
new CIMOpenReferenceInstancePathsRequestMessage( |
|
String::EMPTY, // messageId_ param |
|
nameSpace, |
|
objectName, |
|
resultClass, |
|
role, |
|
filterQueryLanguage, |
|
filterQuery, |
|
operationTimeout, |
|
continueOnError, |
|
maxObjectCount, |
|
QueueIdStack())); |
|
|
|
enumerationContext.setNameSpace(nameSpace); |
|
Message* message = |
|
_doRequest(request, CIM_OPEN_REFERENCE_INSTANCE_PATHS_RESPONSE_MESSAGE); |
|
|
|
CIMOpenReferenceInstancePathsResponseMessage* response = |
|
(CIMOpenReferenceInstancePathsResponseMessage*)message; |
|
|
|
AutoPtr<CIMOpenReferenceInstancePathsResponseMessage> destroyer(response); |
|
|
|
// set paramters to be returned to caller |
|
endOfSequence = response->endOfSequence; |
|
enumerationContext.setContextString(response->enumerationContext); |
|
|
|
return response->getResponseData(); |
|
} |
|
|
|
CIMResponseData CIMClientRep::openAssociatorInstances( |
|
CIMEnumerationContext& enumerationContext, |
|
Boolean& endOfSequence, |
|
const CIMNamespaceName& nameSpace, |
|
const CIMObjectPath& objectName, |
|
const CIMName& assocClass, |
|
const CIMName& resultClass, |
|
const String& role, |
|
const String& resultRole, |
|
Boolean includeClassOrigin, |
|
const CIMPropertyList& propertyList, |
|
const String& filterQueryLanguage, |
|
const String& filterQuery, |
|
const Uint32Arg& operationTimeout, |
|
Boolean continueOnError, |
|
Uint32 maxObjectCount ) |
|
{ |
|
AutoPtr<CIMRequestMessage> request( |
|
new CIMOpenAssociatorInstancesRequestMessage( |
|
String::EMPTY, // messageId_ param |
|
nameSpace, |
|
objectName, |
|
assocClass, |
|
resultClass, |
|
role, |
|
resultRole, |
|
includeClassOrigin, |
|
propertyList, |
|
filterQueryLanguage, |
|
filterQuery, |
|
operationTimeout, |
|
continueOnError, |
|
maxObjectCount, |
|
QueueIdStack())); |
|
|
|
enumerationContext.setNameSpace(nameSpace); |
|
|
|
Message* message = |
|
_doRequest(request, CIM_OPEN_ASSOCIATOR_INSTANCES_RESPONSE_MESSAGE); |
|
|
|
CIMOpenAssociatorInstancesResponseMessage* response = |
|
(CIMOpenAssociatorInstancesResponseMessage*)message; |
|
|
|
AutoPtr<CIMOpenAssociatorInstancesResponseMessage> destroyer(response); |
|
|
|
// set parameters to be returned to caller |
|
endOfSequence = response->endOfSequence; |
|
enumerationContext.setContextString(response->enumerationContext); |
|
|
|
return response->getResponseData(); |
|
} |
|
|
|
CIMResponseData CIMClientRep::openAssociatorInstancePaths( |
|
CIMEnumerationContext& enumerationContext, |
|
Boolean& endOfSequence, |
|
const CIMNamespaceName& nameSpace, |
|
const CIMObjectPath& objectName, |
|
const CIMName& assocClass, |
|
const CIMName& resultClass, |
|
const String& role, |
|
const String& resultRole, |
|
const String& filterQueryLanguage, |
|
const String& filterQuery, |
|
const Uint32Arg& operationTimeout, |
|
Boolean continueOnError, |
|
Uint32 maxObjectCount) |
|
{ |
|
AutoPtr<CIMRequestMessage> request( |
|
new CIMOpenAssociatorInstancePathsRequestMessage( |
|
String::EMPTY, // messageId_ param |
|
nameSpace, |
|
objectName, |
|
assocClass, |
|
resultClass, |
|
role, |
|
resultRole, |
|
filterQueryLanguage, |
|
filterQuery, |
|
operationTimeout, |
|
continueOnError, |
|
maxObjectCount, |
|
QueueIdStack())); |
|
|
|
enumerationContext.setNameSpace(nameSpace); |
|
Message* message = |
|
_doRequest(request, |
|
CIM_OPEN_ASSOCIATOR_INSTANCE_PATHS_RESPONSE_MESSAGE); |
|
|
|
CIMOpenAssociatorInstancePathsResponseMessage* response = |
|
(CIMOpenAssociatorInstancePathsResponseMessage*)message; |
|
|
|
AutoPtr<CIMOpenAssociatorInstancePathsResponseMessage> destroyer(response); |
|
|
|
// set paramters to be returned to caller |
|
endOfSequence = response->endOfSequence; |
|
enumerationContext.setContextString(response->enumerationContext); |
|
|
|
return response->getResponseData(); |
|
} |
|
|
|
CIMResponseData CIMClientRep::pullInstancesWithPath( |
|
CIMEnumerationContext& enumerationContext, |
|
Boolean& endOfSequence, |
|
Uint32 maxObjectCount) |
|
{ |
|
AutoPtr<CIMRequestMessage> request( |
|
new CIMPullInstancesWithPathRequestMessage( |
|
String::EMPTY, // messageId_ param |
|
enumerationContext.getNameSpace(), |
|
enumerationContext.getContextString(), |
|
maxObjectCount, |
|
QueueIdStack() )); |
|
|
|
Message* message = |
|
_doRequest(request, CIM_PULL_INSTANCES_WITH_PATH_RESPONSE_MESSAGE); |
|
|
|
CIMPullInstancesWithPathResponseMessage* response = |
|
(CIMPullInstancesWithPathResponseMessage*)message; |
|
|
|
AutoPtr<CIMPullInstancesWithPathResponseMessage> destroyer(response); |
|
|
|
// set paramters to be returned to caller |
|
endOfSequence = response->endOfSequence; |
|
enumerationContext.setContextString(response->enumerationContext); |
|
|
|
return response->getResponseData(); |
|
} |
|
|
|
CIMResponseData CIMClientRep::pullInstancePaths( |
|
CIMEnumerationContext& enumerationContext, |
|
Boolean& endOfSequence, |
|
Uint32 maxObjectCount) |
|
{ |
|
AutoPtr<CIMRequestMessage> request( |
|
new CIMPullInstancePathsRequestMessage( |
|
String::EMPTY, // messageId_ param |
|
enumerationContext.getNameSpace(), |
|
enumerationContext.getContextString(), |
|
maxObjectCount, |
|
QueueIdStack() |
|
)); |
|
|
|
Message* message = |
|
_doRequest(request, CIM_PULL_INSTANCE_PATHS_RESPONSE_MESSAGE); |
|
|
|
CIMPullInstancePathsResponseMessage* response = |
|
(CIMPullInstancePathsResponseMessage*)message; |
|
|
|
AutoPtr<CIMPullInstancePathsResponseMessage> destroyer(response); |
|
|
|
// set paramters to be returned to caller |
|
endOfSequence = response->endOfSequence; |
|
enumerationContext.setContextString(response->enumerationContext); |
|
|
|
return response->getResponseData(); |
|
} |
|
|
|
CIMResponseData CIMClientRep::pullInstances( |
|
CIMEnumerationContext& enumerationContext, |
|
Boolean& endOfSequence, |
|
Uint32 maxObjectCount) |
|
{ |
|
AutoPtr<CIMRequestMessage> request( |
|
new CIMPullInstancesRequestMessage( |
|
String::EMPTY, // messageId_ param |
|
enumerationContext.getNameSpace(), |
|
enumerationContext.getContextString(), |
|
maxObjectCount, |
|
QueueIdStack() )); |
|
|
|
Message* message = |
|
_doRequest(request, CIM_PULL_INSTANCES_RESPONSE_MESSAGE); |
|
|
|
CIMPullInstancesResponseMessage* response = |
|
(CIMPullInstancesResponseMessage*)message; |
|
|
|
AutoPtr<CIMPullInstancesResponseMessage> destroyer(response); |
|
|
|
// set paramters to be returned to caller |
|
endOfSequence = response->endOfSequence; |
|
enumerationContext.setContextString(response->enumerationContext); |
|
|
|
return response->getResponseData(); |
|
} |
|
|
|
void CIMClientRep::closeEnumeration( |
|
CIMEnumerationContext& enumerationContext) |
|
{ |
|
AutoPtr<CIMRequestMessage> request( |
|
new CIMCloseEnumerationRequestMessage( |
|
String::EMPTY, // messageId_ param |
|
enumerationContext.getNameSpace(), |
|
enumerationContext.getContextString(), |
|
QueueIdStack() |
|
)); |
|
|
|
Message* message = |
|
_doRequest(request, CIM_CLOSE_ENUMERATION_RESPONSE_MESSAGE); |
|
|
|
CIMCloseEnumerationResponseMessage* response = |
|
(CIMCloseEnumerationResponseMessage*)message; |
|
|
|
AutoPtr<CIMCloseEnumerationResponseMessage> destroyer(response); |
|
|
|
return; |
|
} |
|
|
|
Uint64Arg CIMClientRep::enumerationCount( |
|
CIMEnumerationContext& enumerationContext) |
|
{ |
|
if (enumerationContext.getContextString().size()) |
|
{ |
|
throw InvalidEnumerationContextException(); |
|
} |
|
AutoPtr<CIMRequestMessage> request( |
|
new CIMEnumerationCountRequestMessage( |
|
String::EMPTY, // messageId_ param |
|
enumerationContext.getNameSpace(), |
|
enumerationContext.getContextString(), |
|
QueueIdStack() |
|
)); |
|
|
|
Message* message = |
|
_doRequest(request, CIM_ENUMERATION_COUNT_RESPONSE_MESSAGE); |
|
|
|
CIMEnumerationCountResponseMessage* response = |
|
(CIMEnumerationCountResponseMessage*)message; |
|
|
|
AutoPtr<CIMEnumerationCountResponseMessage> destroyer(response); |
|
|
|
return response->count ; |
|
} |
|
|
|
CIMResponseData CIMClientRep::openQueryInstances( |
|
CIMEnumerationContext& enumerationContext, |
|
Boolean& endOfSequence, |
|
const CIMNamespaceName& nameSpace, |
|
const String& queryLanguage, |
|
const String& query, |
|
CIMClass& queryResultClass, |
|
Boolean returnQueryResultClass, |
|
const Uint32Arg& operationTimeout, |
|
Boolean continueOnError, |
|
Uint32 maxObjectCount) |
|
{ |
|
// Save requied information in enumerationContext |
|
enumerationContext.setNameSpace(nameSpace); |
|
|
|
// Create/send the request message |
|
AutoPtr<CIMRequestMessage> request( |
|
new CIMOpenQueryInstancesRequestMessage( |
|
String::EMPTY, // messageId_ param |
|
nameSpace, |
|
queryLanguage, |
|
query, |
|
returnQueryResultClass, |
|
operationTimeout, |
|
continueOnError, |
|
maxObjectCount, |
|
QueueIdStack())); |
|
|
|
Message* message = |
|
_doRequest(request, CIM_OPEN_QUERY_INSTANCES_RESPONSE_MESSAGE); |
|
|
|
// When Response received, get response message, get output parameters |
|
// and return data |
|
CIMOpenQueryInstancesResponseMessage* response = |
|
(CIMOpenQueryInstancesResponseMessage*)message; |
|
|
|
AutoPtr<CIMOpenQueryInstancesResponseMessage> destroyer(response); |
|
|
|
// set endOfSequence and context return parameters |
|
endOfSequence = response->endOfSequence; |
|
enumerationContext.setContextString(response->enumerationContext); |
|
|
|
return response->getResponseData(); |
|
} |
|
//EXP_PULL_END |
|
|
|
Message* CIMClientRep::_doRequest( | Message* CIMClientRep::_doRequest( |
AutoPtr<CIMRequestMessage>& request, | AutoPtr<CIMRequestMessage>& request, |
MessageType expectedResponseMessageType) | MessageType expectedResponseMessageType) |
|
|
// | // |
if (response->getCloseConnect() == true) | if (response->getCloseConnect() == true) |
{ | { |
_disconnect(true); |
_disconnect(); |
_doReconnect = true; | _doReconnect = true; |
response->setCloseConnect(false); | response->setCloseConnect(false); |
} | } |
|
|
perfDataStore.setClassRegistered(false); | perfDataStore.setClassRegistered(false); |
} | } |
| |
|
|
/* |
|
Implementation of the Trace mechanism |
|
*/ |
|
|
|
// static variables to store the display state for input and output. |
|
Uint32 ClientTrace::inputState; |
|
Uint32 ClientTrace::outputState; |
|
|
|
ClientTrace::TraceType ClientTrace::selectType(const String& str) |
|
{ |
|
if (str == "con") |
|
{ |
|
return TRACE_CON; |
|
} |
|
if (str == "log") |
|
{ |
|
return TRACE_LOG; |
|
} |
|
if (str == "both") |
|
{ |
|
return TRACE_BOTH; |
|
} |
|
return TRACE_NONE; |
|
} |
|
|
|
Boolean ClientTrace::displayOutput(TraceType tt) |
|
{ |
|
return (tt & outputState); |
|
} |
|
|
|
Boolean ClientTrace::displayInput(TraceType tt) |
|
{ |
|
return (tt & inputState); |
|
} |
|
|
|
// Set up the input and output state variables from the input |
|
// environment variable. |
|
void ClientTrace::setup() |
|
{ |
|
String input; |
|
if (char * envVar = getenv("PEGASUS_CLIENT_TRACE")) |
|
{ |
|
input = envVar; |
|
input.toLower(); |
|
String in; |
|
String out; |
|
Uint32 pos = input.find(':'); |
|
|
|
// if no colon found, input and output have same mask |
|
if (pos == PEG_NOT_FOUND) |
|
{ |
|
in = input; |
|
out = input; |
|
} |
|
else |
|
{ |
|
// if string starts with colon, input empty, else |
|
// either both or output empty |
|
if (input[0] == ':') |
|
{ |
|
in = ""; |
|
out = input.subString(1); |
|
} |
|
else |
|
{ |
|
in = input.subString(0,pos); |
|
if (pos == (input.size() - 1)) |
|
{ |
|
out = ""; |
|
} |
|
else |
|
{ |
|
out =input.subString(pos + 1); |
|
} |
|
} |
|
} |
|
|
|
// set the state variables |
|
outputState = ClientTrace::selectType(out); |
|
inputState = ClientTrace::selectType(in); |
|
|
|
// Test for logging requested and if so set log parameters |
|
if (((outputState| inputState) & TRACE_LOG) != 0) |
|
{ |
|
Logger::setlogLevelMask(""); |
|
} |
|
} |
|
} |
|
PEGASUS_NAMESPACE_END | PEGASUS_NAMESPACE_END |