本文整理汇总了C++中UtlHashMap::destroyAll方法的典型用法代码示例。如果您正苦于以下问题:C++ UtlHashMap::destroyAll方法的具体用法?C++ UtlHashMap::destroyAll怎么用?C++ UtlHashMap::destroyAll使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类UtlHashMap
的用法示例。
在下文中一共展示了UtlHashMap::destroyAll方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: while
void
ResultSet::destroyAll()
{
// the pRecord is actually a UtlHashMap
UtlHashMap* pRecord;
while ((pRecord = dynamic_cast<UtlHashMap*>(get())))
{
pRecord->destroyAll();
delete pRecord;
}
}
示例2: getProcessStateAll
// Fill in a map of process names and states (as UtlStrings)
void SipxProcessManager::getProcessStateAll(UtlHashMap& processStates //< key->name, value->state string
)
{
processStates.destroyAll();
SipxProcess* process;
// the lock is not required with the Iterator
UtlHashBagIterator processes(mProcesses);
while ((process = dynamic_cast<SipxProcess*>(processes())))
{
if ( 0 != process->compareTo(SUPERVISOR_PROCESS_NAME) )
{
processStates.insertKeyAndValue(new UtlString(process->data()),
new UtlString(process->GetCurrentState()->name())
);
}
}
}
示例3: addSubscription
//functions
UtlBoolean
SubscribeServerThread::handleMessage(OsMsg& eventMessage)
{
// Only handle SIP messages
if (eventMessage.getMsgType() != OsMsg::PHONE_APP ||
eventMessage.getMsgSubType() != SipMessage::NET_SIP_MESSAGE)
{
return FALSE ;
}
const SipMessage* message =
((SipMessageEvent&)eventMessage).getMessage();
UtlString userKey;
UtlString uri;
SipMessage finalResponse;
// Test for request/response processing code path
if (!message->isResponse())
{
// this is a request, so authenticate and authorize the request
if ( isValidDomain( message, &finalResponse ) )
{
UtlString eventPackage;
UtlString id;
UtlHashMap otherParams;
message->getEventField(&eventPackage, &id, &otherParams);
StatusPluginReference* pluginContainer =
mPluginTable->getPlugin( eventPackage );
if( pluginContainer )
{
//check in credential database if authentication needed
UtlString authenticatedUser, authenticatedRealm;
if( isAuthenticated ( message, &finalResponse, authenticatedUser, authenticatedRealm ) )
{
if ( isAuthorized ( message, &finalResponse, pluginContainer ) )
{
// fetch the plugin
SubscribeServerPluginBase* plugin =
pluginContainer->getPlugin();
if (plugin)
{
int timeNow = (int)OsDateTime::getSecsSinceEpoch();
int grantedExpiration;
UtlString newToTag;
// add the subscription to the IMDB
SubscribeStatus isSubscriptionAdded
= addSubscription(timeNow,
message,
mDefaultDomain,
eventPackage,
id,
otherParams,
newToTag,
grantedExpiration);
otherParams.destroyAll();
switch ( isSubscriptionAdded )
{
case STATUS_SUCCESS:
// create response - 202 Accepted Response
finalResponse.setResponseData( message,
SIP_ACCEPTED_CODE,
SIP_ACCEPTED_TEXT);
// Set the granted subscription time.
finalResponse.setExpiresField(grantedExpiration);
plugin->handleSubscribeRequest( *message,
finalResponse,
authenticatedUser.data(),
authenticatedRealm.data(),
mDefaultDomain.data());
// ensure that the contact returned will route back to here
// (the default supplied by SipUserAgent will not).
{
UtlString requestUri;
message->getRequestUri(&requestUri);
finalResponse.setContactField(requestUri);
}
break;
case STATUS_TO_BE_REMOVED:
// create response - 202 Accepted Response
finalResponse.setResponseData( message,
SIP_ACCEPTED_CODE,
SIP_ACCEPTED_TEXT);
// Set the granted subscription time.
finalResponse.setExpiresField(grantedExpiration);
plugin->handleSubscribeRequest( *message,
finalResponse,
//.........这里部分代码省略.........
示例4: getContent
UtlBoolean SipPublishContentMgr::getContent(const char* resourceId,
const char* eventTypeKey,
const char* acceptHeaderValue,
HttpBody*& content,
UtlBoolean& isDefaultContent)
{
#ifdef TEST_PRINT
osPrintf("SipPublishContentMgr::getContent(%s, %s, %s, ...)\n",
resourceId, eventTypeKey, acceptHeaderValue);
#endif
UtlBoolean foundContent = FALSE;
UtlString key(resourceId);
key.append(eventTypeKey);
PublishContentContainer* container = NULL;
UtlHashMap contentTypes;
isDefaultContent = FALSE;
UtlBoolean acceptedTypesGiven = buildContentTypesContainer(acceptHeaderValue, contentTypes);
lock();
// See if resource specific content exists
container =
(PublishContentContainer*) mContentEntries.find(&key);
// No resource specific content check if the default exists
if(container == NULL)
{
key = eventTypeKey;
container =
(PublishContentContainer*) mDefaultContentEntries.find(&key);
if(container)
{
isDefaultContent = TRUE;
}
}
if(container)
{
HttpBody* bodyPtr = NULL;
UtlSListIterator contentIterator(container->mEventContent);
while((bodyPtr = (HttpBody*)contentIterator()))
{
// No MIME types specified, take the first one
if(!acceptedTypesGiven)
{
content = HttpBody::copyBody(*bodyPtr);
foundContent = TRUE;
break;
}
// Find the first match. The container has the bodies
// in the servers preferred order.
if(contentTypes.find(bodyPtr))
{
content = HttpBody::copyBody(*bodyPtr);
foundContent = TRUE;
break;
}
}
}
else
{
OsSysLog::add(FAC_SIP, PRI_WARNING,
"SipPublishContentMgr::getContent no container is found\n");
}
unlock();
contentTypes.destroyAll();
return(foundContent);
}
示例5: execute
virtual bool execute(const HttpRequestContext& requestContext, ///< request context
UtlSList& params, ///< request param list
void* userData, ///< user data
XmlRpcResponse& response, ///< request response
ExecutionStatus& status
)
{
UtlString* dbName = dynamic_cast<UtlString*>(params.at(0));
if (dbName && !dbName->isNull())
{
OsReadLock lock(*ConfigRPC::spDatabaseLock);
// find the dataset registered with this name
ConfigRPC* db = ConfigRPC::find(*dbName);
if (db)
{
// check with the application to see if this request is authorized on this dataset
status = db->mCallback->accessAllowed(requestContext, ConfigRPC_Callback::Get);
if ( XmlRpcMethod::OK == status )
{
// read in the dataset
OsConfigDb dataset;
OsStatus datasetStatus = db->load(dataset);
if ( OS_SUCCESS == datasetStatus )
{
// get the list of names that the request is asking for
UtlContainable* secondParam = params.at(1);
if ( secondParam )
{
UtlSList* nameList = dynamic_cast<UtlSList*>(secondParam);
if (nameList)
{
/*
* Iterate over the requested names
* - All must be present or the request is an error
* - For each name found, add the name and value to the
* selectedParams hash to be returned in a success response.
*/
UtlHashMap selectedParams;
UtlSListIterator requestedNames(*nameList);
UtlString* requestedName = NULL;
bool allNamesFound = true;
while ( allNamesFound
&& (requestedName = dynamic_cast<UtlString*>(requestedNames()))
)
{
UtlString* paramValue = new UtlString();
if ( OS_SUCCESS == dataset.get(*requestedName, *paramValue) )
{
UtlString* paramName = new UtlString(*requestedName);
// put it into the results
selectedParams.insertKeyAndValue(paramName, paramValue);
}
else
{
allNamesFound = false;
delete paramValue;
}
}
if (allNamesFound)
{
// all were found - return the name/value pairs
response.setResponse(&selectedParams);
}
else
{
// at least one name was not found - return an error.
UtlString faultMsg;
faultMsg.append("parameter name '");
faultMsg.append(*requestedName);
faultMsg.append("' not found");
response.setFault(ConfigRPC::nameNotFound, faultMsg.data());
status = XmlRpcMethod::FAILED;
}
selectedParams.destroyAll();
}
else
{
// The second parameter was not a list
response.setFault( ConfigRPC::invalidType
,"namelist parameter is not an array"
);
status = XmlRpcMethod::FAILED;
}
}
else // no parameter names specified
{
// return all names
UtlHashMap allParams;
UtlString lastKey;
OsStatus iterateStatus;
UtlString* paramName;
UtlString* paramValue;
bool notEmpty = false;
for ( ( paramName = new UtlString()
//.........这里部分代码省略.........
示例6: linkTopologyResources
//.........这里部分代码省略.........
result = lookupResource(outputResourceName, outputResource);
if(result != OS_SUCCESS)
{
int virtPortIdx = outputResourcePortIndex>=0?outputResourcePortIndex:-1;
int realPortIdx;
result = lookupVirtualOutput(outputResourceName, virtPortIdx,
outputResource, realPortIdx);
if (result == OS_SUCCESS && outputResourcePortIndex>=0)
{
outputResourcePortIndex = realPortIdx;
}
}
assert(result == OS_SUCCESS);
}
inputResource = (MpResource*) newResources.find(&inputResourceName);
if(inputResource == NULL)
{
result = lookupResource(inputResourceName, inputResource);
if(result != OS_SUCCESS)
{
int virtPortIdx = inputResourcePortIndex>=0?inputResourcePortIndex:-1;
int realPortIdx;
result = lookupVirtualInput(inputResourceName, virtPortIdx,
inputResource, realPortIdx);
if (result == OS_SUCCESS && inputResourcePortIndex>=0)
{
inputResourcePortIndex = realPortIdx;
}
}
assert(result == OS_SUCCESS);
}
assert(outputResource);
assert(inputResource);
if(outputResource && inputResource)
{
if(outputResourcePortIndex == MpResourceTopology::MP_TOPOLOGY_NEXT_AVAILABLE_PORT)
{
outputResourcePortIndex = outputResource->reserveFirstUnconnectedOutput();
assert(outputResourcePortIndex >= 0);
}
else if(outputResourcePortIndex < MpResourceTopology::MP_TOPOLOGY_NEXT_AVAILABLE_PORT)
{
// First see if a real port is already in the dictionary
UtlInt searchKey(outputResourcePortIndex);
UtlInt* foundValue = NULL;
if((foundValue = (UtlInt*) newConnectionIds.findValue(&searchKey)))
{
// Use the mapped index
outputResourcePortIndex = foundValue->getValue();
}
else
{
// Find an available port and add it to the map
int realPortNum = outputResource->reserveFirstUnconnectedOutput();
assert(realPortNum >= 0);
UtlInt* portKey = new UtlInt(outputResourcePortIndex);
UtlInt* portValue = new UtlInt(realPortNum);
newConnectionIds.insertKeyAndValue(portKey, portValue);
outputResourcePortIndex = realPortNum;
}
}
if(inputResourcePortIndex == MpResourceTopology::MP_TOPOLOGY_NEXT_AVAILABLE_PORT)
{
inputResourcePortIndex = inputResource->reserveFirstUnconnectedInput();
assert(inputResourcePortIndex >= 0);
}
else if(inputResourcePortIndex < MpResourceTopology::MP_TOPOLOGY_NEXT_AVAILABLE_PORT)
{
// First see if a real port is already in the dictionary
UtlInt searchKey(inputResourcePortIndex);
UtlInt* foundValue = NULL;
if((foundValue = (UtlInt*) newConnectionIds.findValue(&searchKey)))
{
// Use the mapped index
inputResourcePortIndex = foundValue->getValue();
}
else
{
// Find an available port and add it to the map
int realPortNum = inputResource->reserveFirstUnconnectedInput();
assert(realPortNum >= 0);
UtlInt* portKey = new UtlInt(inputResourcePortIndex);
UtlInt* portValue = new UtlInt(realPortNum);
newConnectionIds.insertKeyAndValue(portKey, portValue);
inputResourcePortIndex = realPortNum;
}
}
result = addLink(*outputResource, outputResourcePortIndex, *inputResource, inputResourcePortIndex);
assert(result == OS_SUCCESS);
}
connectionIndex++;
}
newConnectionIds.destroyAll();
return(connectionIndex);
}
示例7: fileExecute
void fileExecute(const char* inputFile, bool bSingleStep)
{
FILE *fp;
char szBuffer[128];
char* token;
int line = 0;
if ((fp=fopen(inputFile, "r")) != NULL)
{
do {
rewind(fp);
while (fgets(szBuffer, 128, fp) != NULL)
{
++line;
if (szBuffer[0] != 0)
{
printf("Executing %s", szBuffer);
}
token = strtok(szBuffer, " ");
if (token == NULL)
{
break;
}
if (strcasecmp(token, "version") == 0)
{
token = strtok(NULL, " ");
if (token == NULL)
{
fileError(1, line);
}
else
{
Url url(token);
token = strtok(NULL, " ");
if (token == NULL)
{
fileError(2, line);
}
else
{
DataSet = token;
requestVersion(url);
}
}
}
else if (strcasecmp(token, "get") == 0)
{
token = strtok(NULL, " ");
if (token == NULL)
{
fileError(1, line);
}
else
{
Url url(token);
token = strtok(NULL, " ");
if (token == NULL)
{
fileError(2, line);
}
else
{
DataSet = token;
UtlSList names;
while (token != NULL)
{
token = strtok(NULL, " ");
if (token != NULL)
{
names.append(new UtlString(token));
}
}
requestGet(url, names);
names.destroyAll();
}
}
}
else if (strcasecmp(token, "set") == 0)
{
token = strtok(NULL, " ");
if (token == NULL)
{
fileError(1, line);
}
else
{
Url url(token);
token = strtok(NULL, " ");
if (token == NULL)
{
fileError(2, line);
}
else
{
DataSet = token;
UtlHashMap parameters;
char *key;
char *value;
while (token != NULL)
//.........这里部分代码省略.........
示例8: main
int main(int argc, char* argv[])
{
parseArgs(argc, argv);
initLogger(argv);
OsEvent taskDone;
Url url(xmlrpcURI);
if (MemCheckDelay)
{
// Delay 45 seconds to allow memcheck start
printf("Wating %d seconds for start of memcheck ...", MemCheckDelay);
OsTask::delay(MemCheckDelay * 1000);
printf("starting\n");
}
// If an input file was specified we start up the number
// of specified threads to execute that input file. If number
// of threads wasn't specified we start up 1 thread.
if (bInputFile)
{
int signaled = 0;
for (int i=0; i<numThreads; i++)
{
ClientTask* pTask = new ClientTask(&taskDone);
pTask->start();
}
// Wait for threads to shut down
while (signaled < numThreads)
{
taskDone.wait();
taskDone.reset();
++signaled;
}
exit(0);
}
switch (Method)
{
case Version: // --version <xmlrpc URI> <dataset>
{
if (optind < argc)
{
fprintf(stderr, "Too many arguments: '%s'\n", argv[optind]);
showHelp(argv);
exit(1);
}
requestVersion(url);
break;
}
case Get: // --get <xmlrpc URI> <dataset> <name> ...
{
UtlSList names;
// copy remaining arguments into the names list
while (optind < argc)
{
names.append(new UtlString(argv[optind++]));
}
requestGet(url, names);
break;
}
case Set: // --set <xmlrpc URI> <dataset> <name> <value> [ <name> <value> ] ...
{
UtlHashMap parameters;
// copy remaining arguments into the names list
while (optind + 1 < argc)
{
UtlString* setName = new UtlString(argv[optind++]);
UtlString* setValue = new UtlString(argv[optind++]);
parameters.insertKeyAndValue(setName, setValue);
}
if (optind < argc)
{
fprintf(stderr, "name '%s' without a value\n", argv[optind]);
showHelp(argv);
exit(1);
}
if (parameters.isEmpty())
{
fprintf(stderr, "must specify at least one name and value\n");
showHelp(argv);
exit(1);
}
else
{
requestSet(url, parameters);
parameters.destroyAll();
}
break;
}
case Delete: // --delete <xmlrpc URI> <dataset> <name> ...
{
//.........这里部分代码省略.........