presencefwsimpleadpt/inc/simplepluginwinfo.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:    Simple Protocol implementation for Presence Framework
*
*/




#ifndef CSIMPLEPLUGINWINFO_H
#define CSIMPLEPLUGINWINFO_H

#include <e32std.h>

#include <msimplewinfoobserver.h>

#include "simpleplugincommon.h"
#include "msimplepluginconnectionobs.h"

#include <ximpbase.h>

class MSimpleWinfo;
class MXIMPIdentity;
class MPresenceInfoFilter;
class MSimpleWinfoWatcher;
class MXIMPProtocolConnectionHost;
class MSimpleConnection;




/**
 * CSimplePluginWinfo
 *
 * Simple Engine Connection
 *
 * @lib ?library
 * @since s60 v5.0
 */
NONSHARABLE_CLASS( CSimplePluginWinfo ) : public CBase,
    public MSimpleWinfoObserver
    {
public:

    /**
     * Constructor.
     * @param aObs callback for complete requests
     * @param aConn Simple Engine connection
     */
    static CSimplePluginWinfo* NewL(
        MSimplePluginConnectionObs& aObs,
        MSimpleConnection& aConn );

    virtual ~CSimplePluginWinfo();

    /**
     * SetHost
     *
     * Set PrFw Host
     *
     * @lib ?library
     * @since s60 v5.0
     * @patam aHost PrFW Host
     */
    void SetHost( MXIMPProtocolConnectionHost* aHost );

    /**
     * SubscribeWinfoListL
     *
     *
     * @lib ?library
     * @since s60 v5.0
     * @param aReqId PrFw req id
     */
    void SubscribeWinfoListL( TXIMPRequestId aReqId );

    /**
     * UnsubscribeWinfoListL
     *
     *
     * @lib ?library
     * @since s60 v5.0
     * @param aReqId PrFw req id
     */
    void UnsubscribeWinfoListL( TXIMPRequestId aReqId );

private:

    CSimplePluginWinfo(
        MSimplePluginConnectionObs& aObs,
        MSimpleConnection& aConn );

    void ConstructL( );


public:

// from base class MSimpleWinfoObserver

// Subscribe presence grant request list

    /**
     * Defined in a base class
     */
    void WinfoReqCompleteL( TInt aOpid, TInt aStatus );

    /**
     * Defined in a base class
     */
    void WinfoTerminatedL(
        TInt aOpid, TInt aReason );

    /**
     * Defined in a base class
     */
    void WinfoNotificationL( MSimpleWinfo& aWinfo );


private: // Data

    /**
     * PrFw Plugin connection observer
     */
    MSimplePluginConnectionObs& iConnObs;

    /**
     * PrFw Host.
     * Not Own.
     */
    MXIMPProtocolConnectionHost* iHost;

    /**
     * SIMPLE engine connection
     */
    MSimpleConnection& iConnection;

    /**
     * SIMPLE engine winfo watcher.
     * Own.
     */
    MSimpleWinfoWatcher* iWinfoWatcher;

    /**
     * PrFW request id
     */
    TXIMPRequestId iPrFwId;

    /**
     * Simple Engine request id
     */
    TInt iSimpleId;

    /**
     * Subscribed
     */
    TInt iSubscribed;

    /**
     * Winfo subscribe completed
     */
    TBool iWinfoCompleted;


    };

#endif // CSimplePluginWinfo_H