13d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* 23d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Copyright (C) 2014 The Android Open Source Project 33d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 43d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Licensed under the Apache License, Version 2.0 (the "License"); 53d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * you may not use this file except in compliance with the License. 63d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * You may obtain a copy of the License at 73d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 83d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * http://www.apache.org/licenses/LICENSE-2.0 93d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Unless required by applicable law or agreed to in writing, software 113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * distributed under the License is distributed on an "AS IS" BASIS, 123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * See the License for the specific language governing permissions and 143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * limitations under the License. 153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/*================================================================================================== 183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Source Name: dmEventLogger.cc 203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby General Description: Implementation of the DMEventLogger class 223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby==================================================================================================*/ 243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "dmEventLogger.h" 263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "dm_uri_utils.h" 273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "dmtoken.h" 283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "xpl_dm_Notifications.h" 293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "dmPluginManager.h" 303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "dm_tree_class.H" 313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "dmEvent.h" 323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "xpl_Logger.h" 333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::DMEventLogger() 353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_pTree = NULL; 373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::~DMEventLogger() 413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T DMEventLogger::Init( DMTree* tree ) 453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if( !tree ) return SYNCML_DM_FAIL; 473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_pTree = tree; 493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_SUCCESS; 503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyPDmtEventData 543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::Find(const DmtEventDataVector & aVector, 553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_EVENT_ACTION_T nAction, 563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BOOLEAN bIsCumulative, 573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BOOLEAN bIsEnabledByParent, 583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR szName, 593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR szNewName) 603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( bIsCumulative ) 633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // no need to search if new node added in it is tracked by node itself 653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( nAction == SYNCML_DM_EVENT_ADD && !bIsEnabledByParent ) 663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return NULL; 673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby else 693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( nAction != SYNCML_DM_EVENT_INDIRECT && nAction != SYNCML_DM_EVENT_REPLACE ) 713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return NULL; 723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for (INT32 index=aVector.size()-1; index>=0; index--) 753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtEventData & pEventData = (PDmtEventData&)(aVector[index]); 773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( pEventData->GetName() == szName || pEventData->GetNewName() == szName ) 783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return pEventData; 803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return NULL; 833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T 883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::AddEvent(PDmtEventData & pEventData, 893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_EVENT_ACTION_T nAction, 903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR szNewName) 913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T dm_stat = SYNCML_DM_SUCCESS; 943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ((DMEventData*)pEventData.GetPtr())->AddAction(nAction); 963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( nAction == SYNCML_DM_EVENT_RENAME && szNewName ) 973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby dm_stat = ((DMEventData*)pEventData.GetPtr())->SetNewName(szNewName); 993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_LOG_DM_TMN_Debug(("New action is added to logger, name = %s\n", (pEventData->GetName().c_str()))); 1023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_SUCCESS; 1033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T 1083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::AddEvent(DmtEventDataVector & aVector, 1093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_EVENT_ACTION_T nAction, 1103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BOOLEAN bIsLeaf, 1113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BOOLEAN bIsEnabledByParent, 1123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR szName, 1133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR szNewName) 1143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T dm_stat = SYNCML_DM_SUCCESS; 1173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMEventData* pDataPtr = NULL; 1193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pDataPtr = new DMEventData(); 1213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( pDataPtr == NULL ) 1223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_DEVICE_FULL; 1233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pDataPtr->SetAction(nAction); 1253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pDataPtr->SetLeaf(bIsLeaf); 1263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pDataPtr->SetEnabledByParent(bIsEnabledByParent); 1273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby dm_stat = pDataPtr->SetName(szName); 1293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( dm_stat != SYNCML_DM_SUCCESS ) 1303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 1313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby delete pDataPtr; 1323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return dm_stat; 1333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( nAction == SYNCML_DM_EVENT_RENAME && szNewName ) 1363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 1373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby dm_stat = pDataPtr->SetNewName(szNewName); 1383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( dm_stat != SYNCML_DM_SUCCESS ) 1393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 1403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby delete pDataPtr; 1413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return dm_stat; 1423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby aVector.push_back(PDmtEventData(pDataPtr)); 1463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_LOG_DM_TMN_Debug(("New event is added to logger, name = %s\n", szName)); 1473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_SUCCESS; 1493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyBOOLEAN 1543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::Find(CPCHAR szPath, 1553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const DMEventMap & aEventMap, 1563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDMEventPath & pEventPath, 1573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtEventDataVector & aVector) 1583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for ( DmtEventMap::POS nPos = 0; nPos < aEventMap.end(); nPos++ ) 1613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 1623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pEventPath = aEventMap.get_key(nPos); 1633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( pEventPath ->GetPath() == szPath ) 1643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 1653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby aVector = aEventMap.get_value(nPos); 1663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return TRUE; 1673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby break; 1683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return FALSE; 1713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T 1773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::OnNodeChanged(CPCHAR szPath , 1783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_EVENT_ACTION_T nAction, 1793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMEventMap & aEventMap, 1803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BOOLEAN bIsCumulative, 1813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BOOLEAN bIsEnabledByParent, 1823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR szNewName ) 1833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T dm_stat = SYNCML_DM_SUCCESS; 1863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMURI oURI(FALSE, szPath); 1883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR pParent = oURI.getParentURI(); 1903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR pNode = oURI.getTailSegments(); 1913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtEventDataVector aVector; 1933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDMEventPath pEventPath; 1943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BOOLEAN bFound = Find(pParent,aEventMap, pEventPath,aVector); 1953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( bFound == FALSE ) 1973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 1983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pEventPath = PDMEventPath(new DMEventPath(pParent)); 1993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( pEventPath == NULL ) 2013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 2023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_LOG_DM_TMN_Error(("Memory allocation error \n")); 2033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_DEVICE_FULL; 2043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtEventData pEventData = NULL; 2083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pEventData = Find(aVector,nAction, bIsCumulative,bIsEnabledByParent,pNode,szNewName); 2093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( pEventData != NULL ) 2113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 2123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby dm_stat = AddEvent(pEventData, nAction, szNewName); 2133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby else 2153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 2163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BOOLEAN bIsLeaf = FALSE; 2173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( nAction == SYNCML_DM_EVENT_REPLACE ) 2193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby bIsLeaf = TRUE; 2203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby else 2213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 2223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMMetaDataManager & m_oMDFObj = m_pTree->GetMetaDataManager(); 2233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby bIsLeaf = m_oMDFObj.IsLeaf(szPath); 2243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby dm_stat = AddEvent(aVector, nAction, bIsLeaf, bIsEnabledByParent, pNode, szNewName); 2263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( dm_stat != SYNCML_DM_SUCCESS ) 2293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 2303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_LOG_DM_TMN_Error(("Cannot add new event, dm_stat = %d\n", dm_stat)); 2313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return dm_stat; 2323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby aEventMap.put( pEventPath , aVector ); 2353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_SUCCESS; 2373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 2393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T 2433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::OnNodeChanged(CPCHAR szPath, 2443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_EVENT_ACTION_T nAction, 2453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const PDMPlugin & pPlugin, 2463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BOOLEAN bIsEnabledByParent, 2473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR szNewName ) 2483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 2493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T dm_stat = SYNCML_DM_SUCCESS; 2513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BOOLEAN bIsCumulative = FALSE; 2523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMEventMap aEventMap; 2543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_LOG_DM_TMN_Debug(("OnNodeChanged called for commit plug-in %s\n", szPath)); 2563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_aPluginEvents.lookup(pPlugin,aEventMap); 2573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( pPlugin->GetType() == SYNCML_DM_EVENT_CUMULATIVE ) 2593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby bIsCumulative = TRUE; 2603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby dm_stat = OnNodeChanged(szPath,nAction,aEventMap,bIsCumulative,bIsEnabledByParent,szNewName); 2623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( dm_stat != SYNCML_DM_SUCCESS ) 2633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return dm_stat; 2643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_aPluginEvents.put(pPlugin,aEventMap); 2663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_SUCCESS; 2673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 2693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T 2723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::OnNodeChanged(CPCHAR szPath, 2733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_EVENT_ACTION_T nAction, 2743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const PDMConfigItem & pItem, 2753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BOOLEAN bIsEnabledByParent, 2763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR szNewName ) 2773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 2783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T dm_stat = SYNCML_DM_SUCCESS; 2803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BOOLEAN bIsCumulative = FALSE; 2813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMEventMap aEventMap; 2833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_LOG_DM_TMN_Debug(("OnNodeChanged called for ES %s\n", szPath)); 2843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_aPostEvents.lookup(pItem,aEventMap); 2853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( ((DMSubscriptionItem*)(pItem.GetPtr()))->GetType() == SYNCML_DM_EVENT_CUMULATIVE ) 2873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby bIsCumulative = TRUE; 2883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby dm_stat = OnNodeChanged(szPath,nAction,aEventMap,bIsCumulative,bIsEnabledByParent,szNewName); 2903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( dm_stat != SYNCML_DM_SUCCESS ) 2913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return dm_stat; 2923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_aPostEvents.put(pItem,aEventMap); 2943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_SUCCESS; 2953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 2973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyUINT32 DMEventLogger::GetSize(const DMEventMap & aEventMap) 3003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 3013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby UINT32 size = sizeof(UINT32) * 2; 3023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for ( DMEventMap::POS nPos = 0; nPos < aEventMap.end(); nPos++ ) 3043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 3053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const PDMEventPath & pPath = aEventMap.get_key(nPos); 3063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const DmtEventDataVector & aVector = aEventMap.get_value(nPos); 3073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby size += pPath->GetSize(); 3093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby size += sizeof(UINT32); 3103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for (INT32 index=0; index<aVector.size(); index++) 3113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 3123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const PDmtEventData & pData = aVector[index]; 3133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMEventData * pDataPtr = (DMEventData*)pData.GetPtr(); 3143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby size += pDataPtr->GetSize(); 3153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return size; 3193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 3203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T 3253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::Serialize(const DmtEventDataVector & aVector, 3263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMBufferWriter & oBuffer) 3273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 3283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T dm_stat = SYNCML_DM_SUCCESS; 3293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby oBuffer.WriteUINT32(aVector.size()); 3313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for (INT32 index=0; index<aVector.size(); index++) 3333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 3343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const PDmtEventData & pData = aVector[index]; 3353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby dm_stat = ((DMEventData*)(pData.GetPtr()))->Serialize(oBuffer); 3363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( dm_stat != SYNCML_DM_SUCCESS ) 3373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return dm_stat; 3383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_SUCCESS; 3413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 3423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T 3453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::Serialize(const DMEventMap & aEventMap, 3463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMBufferWriter & oBuffer) 3473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 3483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T dm_stat = SYNCML_DM_SUCCESS; 3493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby INT32 size = GetSize(aEventMap); 3513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby dm_stat = oBuffer.Allocate(size); 3523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( dm_stat != SYNCML_DM_SUCCESS ) 3543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return dm_stat; 3553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby oBuffer.WriteUINT32(size); 3573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby oBuffer.WriteUINT32(aEventMap.end()); 3593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for ( DMEventMap::POS nPos = 0; nPos < aEventMap.end(); nPos++ ) 3613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 3623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const PDMEventPath & pPath = aEventMap.get_key(nPos); 3633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const DmtEventDataVector & aVector = aEventMap.get_value(nPos); 3643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby dm_stat = pPath->Serialize(oBuffer); 3663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( dm_stat != SYNCML_DM_SUCCESS ) 3673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return dm_stat; 3683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby dm_stat = Serialize(aVector,oBuffer); 3703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( dm_stat != SYNCML_DM_SUCCESS ) 3713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return dm_stat; 3723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_SUCCESS; 3753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 3763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T 3783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::Deserialize(DMBufferReader & oBuffer, 3793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMString & strParent, 3803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtEventData & aData) 3813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 3823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T dm_stat = SYNCML_DM_SUCCESS; 3833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby UINT32 size = oBuffer.ReadUINT32(); 3853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( size != oBuffer.GetSize() ) 3863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_FAIL; 3873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby INT32 nPathsCount = (INT32)oBuffer.ReadUINT32(); 3893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( nPathsCount != 1 ) 3903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_FAIL; 3913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMEventPath oPath; 3933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby dm_stat = oPath.Deserialize(oBuffer); 3943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby strParent = oPath.GetPath(); 3963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby INT32 nNodesCount = (INT32)oBuffer.ReadUINT32(); 3983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( nNodesCount != 1 ) 3993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_FAIL; 4003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMEventData * pDataPtr = new DMEventData(); 4023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( pDataPtr == NULL ) 4033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_DEVICE_FULL; 4043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby dm_stat = pDataPtr->Deserialize(oBuffer); 4063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( dm_stat != SYNCML_DM_SUCCESS ) 4073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 4083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby delete pDataPtr; 4093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return dm_stat; 4103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 4113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby aData = PDmtEventData(pDataPtr); 4133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_SUCCESS; 4153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 4173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T 4213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::Deserialize(DMBufferReader & oBuffer, 4223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtEventDataVector & aVector) 4233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 4243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T dm_stat = SYNCML_DM_SUCCESS; 4253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby INT32 nNodesCount = (INT32)oBuffer.ReadUINT32(); 4273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( nNodesCount == 0 ) 4283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_FAIL; 4293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for (INT32 index =0; index<nNodesCount; index++) 4313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 4323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMEventData * pDataPtr = new DMEventData(); 4333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( pDataPtr == NULL ) 4343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_DEVICE_FULL; 4353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby dm_stat = pDataPtr->Deserialize(oBuffer); 4373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( dm_stat != SYNCML_DM_SUCCESS ) 4383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 4393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby delete pDataPtr; 4403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return dm_stat; 4413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 4423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby aVector.push_back(PDmtEventData(pDataPtr)); 4433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 4443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_SUCCESS; 4463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 4473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T 4523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::Deserialize(DMBufferReader & oBuffer, 4533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtEventMap & aEventMap) 4543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 4553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T dm_stat = SYNCML_DM_SUCCESS; 4563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby UINT32 size = oBuffer.ReadUINT32(); 4583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( size != oBuffer.GetSize() ) 4593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_FAIL; 4603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby INT32 nPathsCount = (INT32)oBuffer.ReadUINT32(); 4623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( nPathsCount == 0 ) 4633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_FAIL; 4643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for (INT32 index = 0; index<nPathsCount; index++) 4663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 4673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMEventPath oPath; 4683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby dm_stat = oPath.Deserialize(oBuffer); 4693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( dm_stat != SYNCML_DM_SUCCESS ) 4703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return dm_stat; 4713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtEventDataVector aVector; 4733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby dm_stat = Deserialize(oBuffer,aVector); 4753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( dm_stat != SYNCML_DM_SUCCESS ) 4763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return dm_stat; 4773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby aEventMap.put(oPath.GetPath(), aVector); 4793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 4813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_SUCCESS; 4833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 4843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyvoid DMEventLogger::OnTreeSaved() 4863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 4873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for ( DMPostEventMap::POS nPos = 0; nPos < m_aPostEvents.end(); nPos++ ) 4893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 4903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const PDMConfigItem & pItem = m_aPostEvents.get_key(nPos); 4913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const DMEventMap & aEventMap = m_aPostEvents.get_value(nPos); 4923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_EVENT_TYPE_T nType = ((DMSubscriptionItem*)(pItem.GetPtr()))->GetType(); 4933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMString strTopic = ((DMSubscriptionItem*)(pItem.GetPtr()))->GetTopic(); 4943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMBufferWriter oBuffer; 4963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( Serialize(aEventMap,oBuffer) == SYNCML_DM_SUCCESS ) 4973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 4983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( strTopic == NULL ) 4993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 5003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby strTopic = pItem->GetPath(); 5013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_LOG_DM_TMN_Debug(("Sending event for %s\n", strTopic.c_str())); 5023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_DM_NotifyTreeUpdate(strTopic, NULL, nType, oBuffer.GetBuffer(), oBuffer.GetSize()); 5033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 5043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby else 5053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 5063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_LOG_DM_TMN_Debug(("Sending event for %s\n", strTopic.c_str())); 5073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_DM_NotifyTreeUpdate(strTopic, pItem->GetPath(), nType, oBuffer.GetBuffer(), oBuffer.GetSize()); 5083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 5093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 5103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby else 5113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 5123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_LOG_DM_TMN_Error(("Event Serialization failed\n")); 5133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 5143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 5153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Reset(); 5173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 5183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyvoid DMEventLogger::Reset() 5203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 5213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_aPostEvents.clear(); 5223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_aPluginEvents.clear(); 5233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 5243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyvoid DMEventLogger::GetCommitPluginEvents(const PDMPlugin & pPlugin, 5263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtEventMap & aUpdatedNodes ) const 5273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 5283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMEventMap aStoredMap; 5293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_aPluginEvents.lookup(pPlugin,aStoredMap); 5313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for ( DmtEventMap::POS nPos = 0; nPos < aStoredMap.end(); nPos++ ) 5323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 5333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const PDMEventPath & pPath = aStoredMap.get_key(nPos); 5343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const DmtEventDataVector & aVector = aStoredMap.get_value(nPos); 5353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby aUpdatedNodes.put(pPath->GetPath(),aVector); 5363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 5373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 5393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T 5433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::CleanEvents(DmtEventDataVector & aVector) 5443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 5453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for ( INT32 index = aVector.size()-1; index >= 0; index-- ) 5473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 5483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const PDmtEventData & pData = aVector[index]; 5493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( ((DMEventData*)(pData.GetPtr()))->IsEnabledByParent() ) 5503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby aVector.remove(index); 5513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 5523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_SUCCESS; 5533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 5553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T 5583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::CleanEvents(DMEventMap & aEventMap, CPCHAR szPath) 5593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 5603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for ( DMEventMap::POS nPos = aEventMap.end()-1; nPos >= 0; nPos-- ) 5623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 5633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const PDMEventPath & pPath = aEventMap.get_key(nPos); 5643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BOOLEAN bIsParent = DmIsParentURI(szPath,pPath->GetPath()); 5663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( !bIsParent && !DmIsParentURI(pPath->GetPath(),szPath) ) 5673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 5683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby continue; 5693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 5703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( bIsParent ) 5723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 5733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtEventDataVector & aVector = aEventMap.get_value(nPos); 5743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CleanEvents(aVector); 5753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( !aVector.size() ) 5763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby aEventMap.remove(pPath); 5773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 5783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 5793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_SUCCESS; 5803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 5823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T 5863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::CleanConfigEvents(CPCHAR szPath) 5873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 5883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for ( DMPostEventMap::POS nPos = m_aPostEvents.end()-1; nPos >= 0; nPos-- ) 5903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 5913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const PDMConfigItem & pConfigItem = m_aPostEvents.get_key(nPos); 5923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( !DmIsParentURI(szPath,pConfigItem->GetPath()) && 5943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby !DmIsParentURI(pConfigItem->GetPath(),szPath) ) 5953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 5963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby continue; 5973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 5983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMParser oStored(pConfigItem->GetPath()); 6003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMParser oRemoved(szPath); 6013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( oRemoved.getSegmentsCount() < oStored.getSegmentsCount() ) 6033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 6043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_aPostEvents.remove(pConfigItem); 6053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby continue; 6063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 6073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMEventMap & aEventMap = m_aPostEvents.get_value(nPos); 6093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CleanEvents(aEventMap,szPath); 6103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( !aEventMap.size() ) 6113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_aPostEvents.remove(pConfigItem); 6123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 6133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_SUCCESS; 6153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 6173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T 6193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::CleanPluginEvents(CPCHAR szPath) 6203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 6213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for ( DMPostEventMap::POS nPos = m_aPluginEvents.end()-1; nPos >= 0; nPos-- ) 6233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 6243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const PDMPlugin & pPlugin = m_aPluginEvents.get_key(nPos); 6253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( !DmIsParentURI(szPath,pPlugin->GetPath()) && 6273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby !DmIsParentURI(pPlugin->GetPath(),szPath) ) 6283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 6293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby continue; 6303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 6313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMParser oStored(pPlugin->GetPath()); 6333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMParser oRemoved(szPath); 6343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( oRemoved.getSegmentsCount() < oStored.getSegmentsCount() ) 6363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 6373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_aPluginEvents.remove(pPlugin); 6383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby continue; 6393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 6403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMEventMap & aEventMap = m_aPluginEvents.get_value(nPos); 6423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CleanEvents(aEventMap,szPath); 6433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( !aEventMap.size() ) 6443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_aPluginEvents.remove(pPlugin); 6453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 6463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_SUCCESS; 6473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 6493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T 6523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::CleanEvents(CPCHAR szPath) 6533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 6543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_LOG_DM_TMN_Debug(("Clean events for %s\n", szPath)); 6553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CleanConfigEvents(szPath); 6563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CleanPluginEvents(szPath); 6573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_SUCCESS; 6583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 6603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T 6643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::UpdateEvents(DMEventMap & aEventMap, 6653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR szPath, 6663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR szNewName) 6673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 6683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for ( DMEventMap::POS nPos = aEventMap.end()-1; nPos >= 0; nPos-- ) 6703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 6713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDMEventPath & pPath = (PDMEventPath &)aEventMap.get_key(nPos); 6723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( !DmIsParentURI(szPath,pPath->GetPath()) ) 6743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby continue; 6753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMBuffer oNewPath; 6773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( !oNewPath.allocate((pPath->GetPath()).length() + DmStrlen(szNewName)) ) 6783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_DEVICE_FULL; 6793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMURI oPath(FALSE,szPath); 6813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR pParent = oPath.getParentURI(); 6823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR pStoredPath = (CPCHAR)(pPath->GetPath()); 6843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMURI oStoredTail(FALSE, pStoredPath + DmStrlen(szPath) + 1); 6853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby oStoredTail.nextSegment(); 6873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR pTailSegments = oStoredTail.getTailSegments(); 6883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby oNewPath.assign(pParent); 6913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby oNewPath.append((UINT8*)"/",1); 6923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby oNewPath.append((UINT8*)szNewName,DmStrlen(szNewName)); 6933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( pTailSegments ) 6953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 6963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby oNewPath.append((UINT8*)"/",1); 6973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby oNewPath.append((UINT8*)pTailSegments,DmStrlen(pTailSegments)); 6983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 6993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pPath = PDMEventPath(new DMEventPath((CPCHAR)oNewPath.getBuffer())); 7013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( pPath == NULL ) 7033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_DEVICE_FULL; 7043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 7053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_SUCCESS; 7063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 7083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T 7133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::UpdateSubscriptionEvents(CPCHAR szPath, 7143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR szNewName) 7153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 7163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for ( DMPostEventMap::POS nPos = m_aPostEvents.end()-1; nPos >= 0; nPos-- ) 7183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 7193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const PDMConfigItem & pConfigItem = m_aPostEvents.get_key(nPos); 7203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( !DmIsParentURI(szPath,pConfigItem->GetPath()) && 7223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby !DmIsParentURI(pConfigItem->GetPath(),szPath) ) 7233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 7243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby continue; 7253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 7263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMEventMap & aEventMap = m_aPostEvents.get_value(nPos); 7283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby UpdateEvents(aEventMap,szPath,szNewName); 7293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 7303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_SUCCESS; 7323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 7343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T 7373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::UpdatePluginEvents(CPCHAR szPath, 7383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR szNewName) 7393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 7403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for ( DMPluginEventMap::POS nPos = m_aPluginEvents.end()-1; nPos >= 0; nPos-- ) 7423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 7433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const PDMPlugin & pPlugin = m_aPluginEvents.get_key(nPos); 7443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( !DmIsParentURI(szPath,pPlugin->GetPath()) && 7463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby !DmIsParentURI(pPlugin->GetPath(),szPath) ) 7473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 7483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby continue; 7493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 7503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMEventMap & aEventMap = m_aPluginEvents.get_value(nPos); 7523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby UpdateEvents(aEventMap,szPath,szNewName); 7533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 7543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_SUCCESS; 7563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 7583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T 7613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::UpdateEvents(CPCHAR szPath, 7623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR szNewName) 7633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 7643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_LOG_DM_TMN_Debug(("Update events for %s\n", szPath)); 7653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby UpdateSubscriptionEvents(szPath,szNewName); 7663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby UpdatePluginEvents(szPath,szNewName); 7673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_SUCCESS; 7683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 7703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyBOOLEAN 7743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::FindRecordForAdd(const DmtEventDataVector & aVector, 7753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR szName) 7763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 7773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for (INT32 index=aVector.size()-1; index>=0; index--) 7793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 7803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const PDmtEventData & pEventData = aVector[index]; 7813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( !pEventData->IsLeaf() ) 7833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby continue; // we need only leaf nodes 7843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( pEventData->GetName() == szName ) // No Rename on leaf nodes, so compare only name 7863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 7873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (pEventData->GetAction() == SYNCML_DM_EVENT_DELETE) // node was deleted 7883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 7893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ((DMEventData*)pEventData.GetPtr())->SetAction(SYNCML_DM_EVENT_REPLACE); // delete+add on leaf node = replace 7903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return TRUE; 7913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 7923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby break; 7933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 7943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 7953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return FALSE; 7963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 7973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 7993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyBOOLEAN 8003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::FindRecordForDelete(DmtEventDataVector & aVector, 8013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR szName) 8023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 8033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BOOLEAN bIsIgnore = FALSE; 8043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for (INT32 index=aVector.size()-1; index>=0; index--) 8053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 8063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const PDmtEventData & pEventData = aVector[index]; 8073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( pEventData->GetName() == szName || pEventData->GetNewName() == szName) 8083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 8093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( (pEventData->GetAction() & SYNCML_DM_EVENT_ADD) == SYNCML_DM_EVENT_ADD ) 8103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 8113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby bIsIgnore = TRUE; 8123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby aVector.remove(index); 8133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 8143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 8153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return bIsIgnore; 8163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 8173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 8183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 8193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return bIsIgnore; 8203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 8213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 8223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 8233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 8243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyBOOLEAN 8253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::FindRecordForReplace(const DmtEventDataVector & aVector, 8263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR szName) 8273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 8283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 8293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for (INT32 index=aVector.size()-1; index>=0; index--) 8303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 8313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const PDmtEventData & pEventData = aVector[index]; 8323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( pEventData->GetName() == szName ) // Replace is only on leaf nodes , no need to check new name 8333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 8343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ((pEventData->GetAction() & SYNCML_DM_EVENT_REPLACE) == SYNCML_DM_EVENT_REPLACE) 8353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return TRUE; 8363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 8373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ((pEventData->GetAction() & SYNCML_DM_EVENT_ADD) == SYNCML_DM_EVENT_ADD) 8383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return TRUE; 8393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 8403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby break; 8413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 8423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 8433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return FALSE; 8443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 8453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 8463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 8473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyBOOLEAN 8483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::FindRecordForRename(DmtEventDataVector & aVector, 8493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR szName, 8503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR szNewName) 8513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 8523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BOOLEAN bIsIgnore = FALSE; 8533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 8543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for (INT32 index=aVector.size()-1; index>=0; index--) 8553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 8563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtEventData & pEventData = aVector[index]; 8573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( ((pEventData->GetAction() & SYNCML_DM_EVENT_ADD) == SYNCML_DM_EVENT_ADD) && 8583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pEventData->GetName() == szName ) 8593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 8603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ((DMEventData*)pEventData.GetPtr())->SetName(szNewName); 8613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby bIsIgnore = TRUE; 8623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby break; 8633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 8643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 8653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( ((pEventData->GetAction() & SYNCML_DM_EVENT_RENAME) == SYNCML_DM_EVENT_RENAME) && 8663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pEventData->GetNewName() == szName ) 8673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 8683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ((DMEventData*)pEventData.GetPtr())->SetNewName(szNewName); 8693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby bIsIgnore = TRUE; 8703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby break; 8713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 8723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 8733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return bIsIgnore; 8743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 8753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 8763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 8773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 8783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyBOOLEAN 8793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::CheckEventOnSameNode(DmtEventDataVector & aVector, 8803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_EVENT_ACTION_T nAction, 8813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR szName, 8823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BOOLEAN bIsCumulative, 8833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR szNewName) 8843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 8853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 8863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 8873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( bIsCumulative ) 8883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 8893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( nAction == SYNCML_DM_EVENT_RENAME ) 8903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return FindRecordForRename(aVector,szName,szNewName); 8913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 8923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby else 8933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 8943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby switch ( nAction ) 8953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 8963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby case SYNCML_DM_EVENT_ADD: 8973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return FindRecordForAdd(aVector,szName); 8983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 8993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby case SYNCML_DM_EVENT_REPLACE: 9003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return FindRecordForReplace(aVector,szName); 9013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 9023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby case SYNCML_DM_EVENT_DELETE: 9033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return FindRecordForDelete(aVector, szName); 9043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 9053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby case SYNCML_DM_EVENT_RENAME: 9063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return FindRecordForRename(aVector,szName,szNewName); 9073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 9083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 9093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 9103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return FALSE; 9113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 9123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 9133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 9143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 9153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 9163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 9173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyBOOLEAN 9183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::IsIgnoreEvent(CPCHAR szPath , 9193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_EVENT_ACTION_T nAction, 9203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMEventMap & aEventMap, 9213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BOOLEAN bIsCumulative, 9223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR szNewName ) 9233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 9243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 9253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 9263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMURI oURI(FALSE, szPath); 9273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 9283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR pParent = oURI.getParentURI(); 9293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR pNode = oURI.getTailSegments(); 9303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 9313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtEventDataVector aVector; 9323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDMEventPath pEventPath; 9333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BOOLEAN bIsFound = Find(pParent,aEventMap, pEventPath,aVector); 9343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 9353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( !bIsFound ) 9363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return FALSE; 9373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 9383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BOOLEAN bIsIgnore = CheckEventOnSameNode(aVector, 9393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby nAction, 9403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pNode, 9413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby bIsCumulative, 9423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby szNewName); 9433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( !aVector.size() ) 9443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby aEventMap.remove(pEventPath); 9453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby else 9463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby aEventMap.put(pEventPath,aVector); 9473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 9483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return bIsIgnore; 9493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 9503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 9513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 9523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 9533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 9543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyBOOLEAN 9553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::IsIgnoreSubscriptionEvent(CPCHAR szPath, 9563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_EVENT_ACTION_T nAction, 9573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR szNewName) 9583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 9593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 9603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BOOLEAN bIsIgnore = TRUE; 9613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BOOLEAN bIsCumulative = FALSE; 9623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 9633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDMConfigItem pFoundItem; 9643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMEventMap aEventMap; 9653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby UINT32 nSegmentCount = 0; 9663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 9673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for ( DMPostEventMap::POS nPos = m_aPostEvents.end()-1; nPos >= 0; nPos-- ) 9683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 9693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const PDMConfigItem & pConfigItem = m_aPostEvents.get_key(nPos); 9703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 9713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( !DmIsParentURI(pConfigItem->GetPath(),szPath) ) 9723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby continue; 9733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 9743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMParser oParser(szPath); 9753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( nSegmentCount < oParser.getSegmentsCount() ) 9763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 9773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby nSegmentCount = oParser.getSegmentsCount(); 9783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pFoundItem = pConfigItem; 9793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby aEventMap = m_aPostEvents.get_value(nPos); 9803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 9813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 9823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 9833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( pFoundItem == NULL ) 9843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return FALSE; 9853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 9863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( ((DMSubscriptionItem*)( pFoundItem.GetPtr()))->GetType() == SYNCML_DM_EVENT_CUMULATIVE ) 9873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby bIsCumulative = TRUE; 9883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 9893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby bIsIgnore = IsIgnoreEvent(szPath, 9903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby nAction, 9913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby aEventMap, 9923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby bIsCumulative, 9933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby szNewName); 9943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 9953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( !aEventMap.size() ) 9963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_aPostEvents.remove( pFoundItem); 9973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby else 9983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_aPostEvents.put(pFoundItem,aEventMap); 9993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 10003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return bIsIgnore; 10013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 10023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 10033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 10043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 10053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 10063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 10073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyBOOLEAN 10083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMEventLogger::IsIgnorePluginEvent(CPCHAR szPath, 10093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_EVENT_ACTION_T nAction, 10103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR szNewName) 10113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 10123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 10133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BOOLEAN bIsIgnore = TRUE; 10143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BOOLEAN bIsCumulative = FALSE; 10153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 10163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDMPlugin pFoundPlugin; 10173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMEventMap aEventMap; 10183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby UINT32 nSegmentCount = 0; 10193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 10203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for ( DMPluginEventMap::POS nPos = m_aPluginEvents.end()-1; nPos >= 0; nPos-- ) 10213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 10223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const PDMPlugin & pPlugin = m_aPluginEvents.get_key(nPos); 10233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 10243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( !DmIsParentURI(pPlugin->GetPath(),szPath) ) 10253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby continue; 10263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 10273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMParser oParser(szPath); 10283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( nSegmentCount < oParser.getSegmentsCount() ) 10293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 10303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby nSegmentCount = oParser.getSegmentsCount(); 10313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pFoundPlugin = pPlugin; 10323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby aEventMap = m_aPluginEvents.get_value(nPos); 10333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 10343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 10353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 10363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 10373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( pFoundPlugin == NULL ) 10383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return FALSE; 10393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 10403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( pFoundPlugin->GetType() == SYNCML_DM_EVENT_CUMULATIVE ) 10413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby bIsCumulative = TRUE; 10423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 10433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby bIsIgnore = IsIgnoreEvent(szPath, 10443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby nAction, 10453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby aEventMap, 10463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby bIsCumulative, 10473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby szNewName); 10483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 10493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( !aEventMap.size() ) 10503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_aPluginEvents.remove(pFoundPlugin); 10513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby else 10523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_aPluginEvents.put(pFoundPlugin,aEventMap); 10533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 10543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return bIsIgnore; 10553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1056