logsui/logsengine/inc/logseventdata.h
author William Roberts <williamr@symbian.org>
Thu, 22 Jul 2010 16:33:49 +0100
branchGCC_SURGE
changeset 12 d56c5d6796ca
parent 6 41c0a814d878
permissions -rw-r--r--
Catchup to latest Symbian^4

/*
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description:
*
*/

#ifndef LOGSEVENTDATA_H
#define LOGSEVENTDATA_H

//  INCLUDES
#include <QString>

// FORWARD DECLARATION
class CLogEvent;
class QDataStream;

// CLASS DECLARATION

/**
 * 
 */
class LogsEventData
    {
    
    public:  
        
        /**
         * Constructor.
         */
        LogsEventData();
        
        /**
         * Copy constructor.
         */
        LogsEventData( const LogsEventData& data );
        
        /**
         * Construct from data stream
         */
        LogsEventData( QDataStream& serializedEvent );

       /**
        * Destructor.
        */
        virtual ~LogsEventData();


    public:  

        /**
         * Parses event data from given data
         * @param source data
         * @return 0 if parsed succesfully
         **/
        int parse( const CLogEvent& source );
        
        bool isCNAP() const;
        bool isVT() const;
        bool isPoC() const;
        bool isVoIP() const;
        long long dataReceived() const; 
        long long dataSent() const;
        bool isEmerg() const;
        int msgPartsNumber() const;
        unsigned int serviceId() const;      
        QString remoteUrl() const;
        QString localUrl() const;
        
        /**
         * Checks whether event data can be used in CS context.
         * @return true if CS compatible.
         */
        bool isCsCompatible();
            
        unsigned int contactLocalId() const;
        
        bool serialize( QDataStream& serializeDestination );
        
    private:
        
        void setContactLocalId( unsigned int id );
        
    private:    // data

        // Calling Name Presentation service flag
        bool mIsCNAP;
        bool mIsVT;
        bool mIsPoC;
        bool mIsVoIP;

        //Flag that indicates whether this is an emergency related event (i.e emerg call)
        bool mIsEmerg;

        //Sent and received data where applicable (in bytes)
        long long mDataSent;
        long long mDataReceived;
        
        //Message parts. Meaningful only for sms            
        int mMsgPartsNumber;            

        unsigned int mServiceId;
        unsigned int mContactLocalId;
        
        QString mRemoteUrl;
        QString mLocalUrl;
        
    private:
        
        friend class LogsEventDataParser;
        friend class LogsEvent;

    private:  // Testing related friend definitions
        
        friend class UT_LogsEventData;
        friend class UT_LogsEvent;
        friend class UT_LogsEventParser;
        friend class UT_LogsEventDataParser;
        friend class UT_LogsCall;
        friend class UT_LogsContact;
        friend class UT_LogsMessage;
        friend class UT_LogsDetailsModel;
        friend class UT_LogsModel;
        friend class UT_LogsCustomFilter;
        friend class UT_LogsMatchesModel;
        
    };

#endif      // LOGSEVENTDATA_H


// End of File