/** * Delete an event, given the eventId */ int Cron::deleteEvent (int iEventId) { Event *pEvent; PtrLList<Cron::Event> *pEventList = (PtrLList<Cron::Event>*) _pEventList; pEventList->resetGet(); while ((pEvent = pEventList->getNext()) != NULL) { if (pEvent->_id == iEventId) { pEventList->remove (pEvent); return 1; } } return 0; }
void DSProImpl::sendWaypointMessage (const void *pBuf, uint32 ui32BufLen) { if (pBuf == NULL || ui32BufLen == 0) { return; } PtrLList<String> *pNeighborList = _pTopology->getNeighbors(); if (pNeighborList == NULL) { return; } if (pNeighborList->getFirst () == NULL) { delete pNeighborList; return; } NodeIdSet nodeIdSet; PreviousMessageIds previousMessageIds; String *pszNextPeerId = pNeighborList->getFirst (); for (String *pszCurrPeerId; (pszCurrPeerId = pszNextPeerId) != NULL;) { pszNextPeerId = pNeighborList->getNext (); previousMessageIds.add (pszCurrPeerId->c_str (), _pScheduler->getLatestMessageReplicatedToPeer (pszCurrPeerId->c_str ())); nodeIdSet.add (pszCurrPeerId->c_str ()); delete pNeighborList->remove (pszCurrPeerId); } delete pNeighborList; uint32 ui32TotalLen = 0; void *pData = WaypointMessageHelper::writeWaypointMessageForTarget (previousMessageIds, pBuf, ui32BufLen, ui32TotalLen); Targets **ppTargets = _pTopology->getNextHopsAsTarget (nodeIdSet); if ((ppTargets != NULL) && (ppTargets[0] != NULL)) { // Send the waypoint message on each available interface that reaches the recipients int rc = _adaptMgr.sendWaypointMessage (pData, ui32TotalLen, _nodeId, ppTargets); String sLatestMsgs (previousMessageIds); String sPeers (nodeIdSet); checkAndLogMsg ("DSPro::sendWaypointMessage", Logger::L_Info, "sending waypoint message " "to %s (%s); last message pushed to this node was %s.\n", sPeers.c_str (), (rc == 0 ? "succeeded" : "failed"), sLatestMsgs.c_str ()); } Targets::deallocateTargets (ppTargets); free (pData); }
PtrLList<String> * LocalNodeInfo::getAllSubscriptions (void) { _m.lock (326); if (_consolidatedSubscriptions.isEmpty()) { _m.unlock (326); return NULL; } PtrLList<String> *pRet = _consolidatedSubscriptions.getAllSubscribedGroups(); const char *pszEnd = ".[od]"; PtrLList<String> temp = (*pRet); for (String *pszCurr = temp.getFirst(); pszCurr != NULL; pszCurr = temp.getNext()) { if (pszCurr->endsWith (pszEnd) == 1) { String *pDel = pRet->remove (pszCurr); if (pDel != NULL) { delete pDel; } } } _m.unlock (326); return pRet; }