logsui/logsengine/src/logsevent.cpp
changeset 15 76d2cf7a585e
parent 8 6c9acdc6adc0
child 17 90fe74753f71
equal deleted inserted replaced
13:52d644758b05 15:76d2cf7a585e
    46     mDuplicates(0),                
    46     mDuplicates(0),                
    47     mRingDuration(0),
    47     mRingDuration(0),
    48     mIsRead(false),
    48     mIsRead(false),
    49     mIsALS(false),
    49     mIsALS(false),
    50     mDuration(0),
    50     mDuration(0),
    51     mIndex(0),
    51     mIndex(-1),
    52     mIsInView(false),
    52     mIsInView(false),
    53     mEventState(EventAdded),
    53     mEventState(EventAdded),
    54     mIsLocallySeen(false),
    54     mIsLocallySeen(false),
    55     mIsPrivate(false),
    55     mIsPrivate(false),
    56     mIsUnknown(false)
    56     mIsUnknown(false),
       
    57     mContactMatched(false)
    57 {
    58 {
    58 }
    59 }
    59 
    60 
    60 // ----------------------------------------------------------------------------
    61 // ----------------------------------------------------------------------------
    61 // LogsEvent::LogsEvent
    62 // LogsEvent::LogsEvent
    85     mIsInView = event.mIsInView;
    86     mIsInView = event.mIsInView;
    86     mEventState = event.mEventState;
    87     mEventState = event.mEventState;
    87     mIsLocallySeen = event.mIsLocallySeen;
    88     mIsLocallySeen = event.mIsLocallySeen;
    88     mIsPrivate = event.mIsPrivate;
    89     mIsPrivate = event.mIsPrivate;
    89     mIsUnknown = event.mIsUnknown;
    90     mIsUnknown = event.mIsUnknown;
       
    91     mContactMatched = event.mContactMatched;
       
    92     mMergedDuplicates = event.mMergedDuplicates;
    90 }
    93 }
    91 
    94 
    92 // ----------------------------------------------------------------------------
    95 // ----------------------------------------------------------------------------
    93 // LogsEvent::~LogsEvent
    96 // LogsEvent::~LogsEvent
    94 // ----------------------------------------------------------------------------
    97 // ----------------------------------------------------------------------------
   169     if ( mEventState == EventNotUpdated && mRemoteParty != remoteParty ){
   172     if ( mEventState == EventNotUpdated && mRemoteParty != remoteParty ){
   170         LOGS_QDEBUG( "logs [ENG] <-> LogsEvent::setRemoteParty, event updated")
   173         LOGS_QDEBUG( "logs [ENG] <-> LogsEvent::setRemoteParty, event updated")
   171         mEventState = LogsEvent::EventUpdated;
   174         mEventState = LogsEvent::EventUpdated;
   172     }
   175     }
   173     mRemoteParty = remoteParty;
   176     mRemoteParty = remoteParty;
       
   177 }
       
   178 
       
   179 // ----------------------------------------------------------------------------
       
   180 // LogsEvent::setContactMatched
       
   181 // ----------------------------------------------------------------------------
       
   182 //
       
   183 void LogsEvent::setContactMatched( bool value )
       
   184 {
       
   185     mContactMatched = value;
       
   186 }
       
   187 
       
   188 // ----------------------------------------------------------------------------
       
   189 // LogsEvent::contactMatched
       
   190 // ----------------------------------------------------------------------------
       
   191 //
       
   192 bool LogsEvent::contactMatched()
       
   193 {
       
   194    return mContactMatched;
   174 }
   195 }
   175 
   196 
   176 // ----------------------------------------------------------------------------
   197 // ----------------------------------------------------------------------------
   177 // LogsEvent::validate
   198 // LogsEvent::validate
   178 // ----------------------------------------------------------------------------
   199 // ----------------------------------------------------------------------------
   377     mEventState = static_cast<LogsEvent::LogsEventState>( tempEnum );
   398     mEventState = static_cast<LogsEvent::LogsEventState>( tempEnum );
   378     serializedEvent >> mIsLocallySeen;
   399     serializedEvent >> mIsLocallySeen;
   379     serializedEvent >> mIsPrivate;
   400     serializedEvent >> mIsPrivate;
   380     serializedEvent >> mIsUnknown;
   401     serializedEvent >> mIsUnknown;
   381     
   402     
   382     LogsEventData* logsEventData = new LogsEventData(serializedEvent);
   403     bool hasEventData = false;
   383     if ( serializedEvent.status() == QDataStream::ReadPastEnd ){
   404     serializedEvent >> hasEventData;
       
   405     if ( hasEventData ){
       
   406         LogsEventData* logsEventData = new LogsEventData(serializedEvent);
       
   407         mLogsEventData = logsEventData;
       
   408     } else {
   384         mLogsEventData = 0;
   409         mLogsEventData = 0;
   385         delete logsEventData;
   410     }
   386     } else {
   411 
   387         mLogsEventData = logsEventData;
   412     int mergedDuplCount = 0;
   388     }
   413     serializedEvent >> mergedDuplCount;
       
   414     for ( int i = 0; i < mergedDuplCount; i++ ){
       
   415         LOGS_QDEBUG( "logs [ENG]    deserializing merged duplicates")
       
   416         LogsEvent duplEvent( serializedEvent );
       
   417         mMergedDuplicates.append( duplEvent );
       
   418     }
       
   419     
   389     LOGS_QDEBUG( "logs [ENG] <- LogsEvent::LogsEvent deserialize")
   420     LOGS_QDEBUG( "logs [ENG] <- LogsEvent::LogsEvent deserialize")
   390     
   421     
   391 }
   422 }
   392 
   423 
   393 // ----------------------------------------------------------------------------
   424 // ----------------------------------------------------------------------------
   416     serializeDestination << mEventState;
   447     serializeDestination << mEventState;
   417     serializeDestination << mIsLocallySeen;
   448     serializeDestination << mIsLocallySeen;
   418     serializeDestination << mIsPrivate;
   449     serializeDestination << mIsPrivate;
   419     serializeDestination << mIsUnknown; 
   450     serializeDestination << mIsUnknown; 
   420     
   451     
   421     if ( mLogsEventData ){
   452     bool hasEventData = mLogsEventData;
       
   453     serializeDestination << hasEventData;
       
   454     if ( hasEventData ){
   422         mLogsEventData->serialize(serializeDestination);
   455         mLogsEventData->serialize(serializeDestination);
       
   456     }
       
   457 
       
   458     serializeDestination << mMergedDuplicates.count();
       
   459     foreach ( LogsEvent duplEvent, mMergedDuplicates ){
       
   460         duplEvent.serialize( serializeDestination );
   423     }
   461     }
   424     
   462     
   425     LOGS_QDEBUG( "logs [ENG] <- LogsEvent::serialize")
   463     LOGS_QDEBUG( "logs [ENG] <- LogsEvent::serialize")
   426     return true;
   464     return true;
   427 }
   465 }
   670 // ----------------------------------------------------------------------------
   708 // ----------------------------------------------------------------------------
   671 //
   709 //
   672 void LogsEvent::markedAsSeenLocally(bool markedAsSeen)
   710 void LogsEvent::markedAsSeenLocally(bool markedAsSeen)
   673 {
   711 {
   674     mIsLocallySeen = markedAsSeen;
   712     mIsLocallySeen = markedAsSeen;
       
   713     for ( int i = 0; i < mMergedDuplicates.count(); i++ ){
       
   714         mMergedDuplicates[i].markedAsSeenLocally(markedAsSeen);
       
   715     }
   675 }
   716 }
   676 
   717 
   677 // ----------------------------------------------------------------------------
   718 // ----------------------------------------------------------------------------
   678 //
   719 //
   679 // ----------------------------------------------------------------------------
   720 // ----------------------------------------------------------------------------
   680 //
   721 //
   681 bool LogsEvent::isSeenLocally() const
   722 bool LogsEvent::isSeenLocally() const
   682 {
   723 {
   683    return ( mIsLocallySeen || mIsRead );
   724    return ( mIsLocallySeen || mIsRead );
   684 }          
   725 }          
   685     
   726 
       
   727 // ----------------------------------------------------------------------------
       
   728 //
       
   729 // ----------------------------------------------------------------------------
       
   730 //
   686 bool LogsEvent::isRemotePartyPrivate() const
   731 bool LogsEvent::isRemotePartyPrivate() const
   687 {
   732 {
   688    return mIsPrivate;
   733    return mIsPrivate;
   689 }          
   734 }
   690 
   735 
       
   736 // ----------------------------------------------------------------------------
       
   737 //
       
   738 // ----------------------------------------------------------------------------
       
   739 //
   691 bool LogsEvent::isRemotePartyUnknown() const
   740 bool LogsEvent::isRemotePartyUnknown() const
   692 {
   741 {
   693     return mIsUnknown;
   742     return mIsUnknown;
   694 }
   743 }
   695 
   744 
       
   745 // ----------------------------------------------------------------------------
       
   746 //
       
   747 // ----------------------------------------------------------------------------
       
   748 //
   696 void LogsEvent::setRemotePartyPrivate(bool markedAsPrivate)
   749 void LogsEvent::setRemotePartyPrivate(bool markedAsPrivate)
   697 {
   750 {
   698     mIsPrivate = markedAsPrivate;
   751     mIsPrivate = markedAsPrivate;
   699 }
   752 }
   700 
   753 
   701 
   754 // ----------------------------------------------------------------------------
       
   755 //
       
   756 // ----------------------------------------------------------------------------
       
   757 //
   702 void LogsEvent::setRemotePartyUnknown(bool markedAsUnknown)
   758 void LogsEvent::setRemotePartyUnknown(bool markedAsUnknown)
   703 {
   759 {
   704     mIsUnknown = markedAsUnknown;
   760     mIsUnknown = markedAsUnknown;
   705 }
   761 }
   706 
   762 
       
   763 // ----------------------------------------------------------------------------
       
   764 //
       
   765 // ----------------------------------------------------------------------------
       
   766 //
       
   767 void LogsEvent::merge(LogsEvent& event)
       
   768 {
       
   769     if ( isUnseenEvent(*this) && isUnseenEvent(event) ){
       
   770         setDuplicates( duplicates() + event.duplicates() + 1 );
       
   771     }
       
   772     if ( !mMergedDuplicates.contains(event) ){
       
   773         mMergedDuplicates.append(event);
       
   774     }
       
   775 }
       
   776 
       
   777 // ----------------------------------------------------------------------------
       
   778 //
       
   779 // ----------------------------------------------------------------------------
       
   780 //
       
   781 QList<LogsEvent>& LogsEvent::mergedDuplicates()
       
   782 {
       
   783     return mMergedDuplicates;
       
   784 }
       
   785 
       
   786 // ----------------------------------------------------------------------------
       
   787 //
       
   788 // ----------------------------------------------------------------------------
       
   789 //
       
   790 bool LogsEvent::operator==(const LogsEvent& other) 
       
   791 {
       
   792     return this->logId() == other.logId();
       
   793 }
       
   794 
       
   795 // -----------------------------------------------------------------------------
       
   796 // 
       
   797 // -----------------------------------------------------------------------------
       
   798 //
       
   799 bool LogsEvent::isCommunicationPossible() const
       
   800 {
       
   801     return ( !isRemotePartyPrivate() && !isRemotePartyUnknown() );
       
   802 }
       
   803 
       
   804 // ----------------------------------------------------------------------------
       
   805 //
       
   806 // ----------------------------------------------------------------------------
       
   807 //
       
   808 bool LogsEvent::isUnseenEvent( const LogsEvent& event ) const
       
   809 {
       
   810     return ( event.direction() == LogsEvent::DirMissed && !event.isSeenLocally() );
       
   811 }
       
   812 
   707 // End of file
   813 // End of file
   708 
   814