equal
deleted
inserted
replaced
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 // ---------------------------------------------------------------------------- |