simpledatamodeladapter/inc/presenceconnectioninfo.h
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:23:14 +0100
branchRCL_3
changeset 35 fbd2e7cec7ef
parent 0 c8caa15ef882
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201027 Kit: 201035

/*
* Copyright (c) 2006 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:  IETF SIMPLE Protocol implementation for XIMP Framework
*
*/


#ifndef CPRESENCECONNECTIONARRAY_H
#define CPRESENCECONNECTIONARRAY_H

#include <e32base.h>
#include "presencelogger.h"
#include "presenceplugincommon.h"
#include "presencepluginconnection.h"

class MXIMPProtocolConnection;

/**
 * CPresencePlugin
 *
 * Implementation of CXIMPProtocolPluginBase
 *
 * @lib presenceplugin.dll
 * @since S60 v3.2
 */


NONSHARABLE_CLASS( CPresenceConnectionInfo ) : public CBase
    {
    public:
        
        /**
        * Two-phased constructor.
        *
        * @param none
        */
        static CPresenceConnectionInfo* NewL( 
        		MXIMPProtocolConnection* aConnection );
    
        /**
         * SetConnectionStatus()
         *
         * @since S60 3.2 
         * @param TConnectionStatus
         * @return none
         */
        void SetConnectionStatus( 
        		CPresencePluginConnection::TConnectionStatus aStatus );
        
        /**
         * SetConnectionETag()
         *
         * @since S60 3.2 
         * @param TDesC8 aETag
         * @return none
         */
        void SetConnectionETag( const TDesC8& aETag );
        
        /**
         * GetConnectionStatus()
         *
         * @since S60 3.2 
         * @param none
         * @return TConnectionStatus connection status
         */
        CPresencePluginConnection::TConnectionStatus GetConnectionStatus();
        
        /**
         * GetConnectionEtag()
         *
         * @since S60 3.2 
         * @param none
         * @return TDesC8 ETag
         */
        TDesC8* GetConnectionEtag();
        
        /**
         * GetConnection()
         *
         * @since S60 3.2 
         * @param none
         * @return MXIMPProtocolConnection connection instance
         */
        MXIMPProtocolConnection* GetConnection();
        
        /**
         * IncreaseClientCount()
         *
         * @since S60 3.2 
         * @param none
         * @return none
         */
        void IncreaseClientCount();
        
        /**
         * DecreaseClientCount()
         *
         * @since S60 3.2 
         * @param none
         * @return none
         */        
        void DecreaseClientCount();
        
        /**
         * GenerateClientId()
         *
         * @since S60 3.2 
         * @param none
         * @return TInt uniqueclient id
         */ 
        TInt GenerateClientId();
        
        /**
         * GenerateClientId()
         *
         * @since S60 3.2 
         * @param none
         * @return TInt uniqueclient id
         */ 
        TInt GetClientId();
        
        /**
         * GenerateClientId()
         *
         * @since S60 3.2 
         * @param none
         * @return TInt client count
         */
        TInt ClientCount();
        
         /**
          * Standard C++ destructor
          */
         ~CPresenceConnectionInfo();
               
     private:
     
         /**
          * Standard C++ constructor
          */   
         CPresenceConnectionInfo( MXIMPProtocolConnection* aConnection );
         
    public: // data
        
        /**
         * Connection ETag
         * Own.
         */
        HBufC8* iETag;
        
        /**
         * Connection
         * Own.
         */
        MXIMPProtocolConnection* iConnection;
        
        /**
         * Connection status
         * Own.
         */
        CPresencePluginConnection::TConnectionStatus iConnectStatus;
        
        /**
         * Connection status
         * Own.
         */
        TInt iClientCount;
        
        /**
         * Client id
         * Own.
         */
        TUint iClientId;
                  
        SIMPLE_UNIT_TEST( T_CPresenceConnectionInfo )
        
    };

#endif // CPRESENCEPLUGIN_H