logsui/logsengine/logssymbianos/src/logseventparser.cpp
changeset 4 e52d42f9500c
parent 2 7119b73b84d6
child 15 76d2cf7a585e
equal deleted inserted replaced
2:7119b73b84d6 4:e52d42f9500c
   101     // Set duration (do not cause update even if duration changed)
   101     // Set duration (do not cause update even if duration changed)
   102     if ( source.DurationType() == KLogDurationValid ){
   102     if ( source.DurationType() == KLogDurationValid ){
   103         dest.setDuration(source.Duration());
   103         dest.setDuration(source.Duration());
   104     }
   104     }
   105     
   105     
       
   106     LogsEventData* logsEventData = new LogsEventData();
       
   107     if ( logsEventData->parse(source) != 0 ){
       
   108         // Parsing failed, clear event data
       
   109         delete logsEventData;
       
   110         dest.setLogsEventData( 0 );
       
   111     } else {
       
   112         dest.setLogsEventData( logsEventData );  //Ownership transferred
       
   113     }
       
   114     
       
   115     // Resolve event type based on current event data
       
   116     dataChanged |= resolveEventType(dest);
       
   117     
   106     int currLogId = dest.logId();
   118     int currLogId = dest.logId();
   107     int newLogId = source.Id();
   119     int newLogId = source.Id();
   108     bool logIdChanged( currLogId != newLogId );
   120     bool logIdChanged( currLogId != newLogId );
   109     if ( currLogId < 0 || logIdChanged ){
   121     if ( currLogId < 0 || logIdChanged ){
   110         dest.mEventState = LogsEvent::EventAdded;
   122         dest.mEventState = LogsEvent::EventAdded;
   112         dest.mEventState = LogsEvent::EventUpdated;
   124         dest.mEventState = LogsEvent::EventUpdated;
   113     } else {
   125     } else {
   114         dest.mEventState = LogsEvent::EventNotUpdated;
   126         dest.mEventState = LogsEvent::EventNotUpdated;
   115     }
   127     }
   116     dest.setLogId( newLogId ); // Store unique identifier
   128     dest.setLogId( newLogId ); // Store unique identifier
   117     
   129 
   118     LogsEventData* logsEventData = new LogsEventData();
       
   119     if ( logsEventData->parse(source) != 0 ){
       
   120         // Parsing failed, clear event data
       
   121         delete logsEventData;
       
   122         dest.setLogsEventData( 0 );
       
   123     } else {
       
   124         dest.setLogsEventData( logsEventData );  //Ownership transferred
       
   125     }
       
   126     
       
   127     // Resolve event type based on current event data
       
   128     resolveEventType(dest);
       
   129     
       
   130     eventTypeSpecificParsing(dest);
   130     eventTypeSpecificParsing(dest);
   131     
   131     
   132     dest.setDuplicates( 0 );
   132     dest.setDuplicates( 0 );
   133     
   133     
   134     if ( dest.validate() ) {
   134     if ( dest.validate() ) {
   138 
   138 
   139 // ----------------------------------------------------------------------------
   139 // ----------------------------------------------------------------------------
   140 // LogsEventParser::resolveEventType
   140 // LogsEventParser::resolveEventType
   141 // ----------------------------------------------------------------------------
   141 // ----------------------------------------------------------------------------
   142 //
   142 //
   143 void LogsEventParser::resolveEventType(LogsEvent& dest)
   143 bool LogsEventParser::resolveEventType(LogsEvent& dest)
   144 {
   144 {
   145     LogsEvent::LogsEventType type( LogsEvent::TypeVoiceCall );
   145     LogsEvent::LogsEventType type( LogsEvent::TypeVoiceCall );
   146     if ( dest.mLogsEventData ){
   146     if ( dest.mLogsEventData ){
   147         if ( dest.mLogsEventData->isVoIP() ){
   147         if ( dest.mLogsEventData->isVoIP() ){
   148             type = LogsEvent::TypeVoIPCall;
   148             type = LogsEvent::TypeVoIPCall;
   155             // Messages not supported at the moment
   155             // Messages not supported at the moment
   156             type = LogsEvent::TypeUndefined;
   156             type = LogsEvent::TypeUndefined;
   157         }
   157         }
   158     }
   158     }
   159     LOGS_QDEBUG_2( "LogsEventParser::resolveEventType, type:", type )
   159     LOGS_QDEBUG_2( "LogsEventParser::resolveEventType, type:", type )
   160     dest.setEventType( type );
   160     return dest.setEventType( type );
   161 }
   161 }
   162 
   162 
   163 // ----------------------------------------------------------------------------
   163 // ----------------------------------------------------------------------------
   164 //
   164 //
   165 // ----------------------------------------------------------------------------
   165 // ----------------------------------------------------------------------------