contentctrl_plat/oma_ds_presync_plugin_api/inc/CPreSyncPlugin.h
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:30:02 +0100
branchRCL_3
changeset 52 4f0867e42d62
parent 0 dab8a81a92de
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201033 Kit: 201035

/*
* Copyright (c) 2007 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:  ECom search interface definition
*
*/


#ifndef CPRESYNC_PLUGIN_H
#define CPRESYNC_PLUGIN_H

//  INCLUDES
#include <e32base.h>
#include <s32mem.h>
#include <ecom/ecom.h>
#include <SyncMLDef.h>

/**
* CenRep key for storing the roaming setting.
* 
*
* Possible integer values:
* 
* 0 Always Ask
* 1 Always Allow
* 2 Never Allow
* 3 Block
* Default value: 0 (Always Ask)
*
*/
const TUint32 KNSmlRoamingSettingKey = 0x00000005;

/**
* CenRep key for storing the roaming setting feature.
* 
*
* Possible integer values:
* 
* 0 Feature disabled
* 1 Feature enabled
*
*/
const TUint32 KNSmlDSRoamingFeature = 0x00000006;


/**
 * Constant:    KPreSyncPluginInterfaceUid
 *
 * Description: UID of this ECOM interface. 
 */
const TUid KPreSyncPluginInterfaceUid = {0x2001955C};

enum TASpRoamingSettingFeature
    {
    EAspRoamingSettingFeatureDisabled = 0,
    EAspRoamingSettingFeatureEnabled = 1
    };

/**
 * Class:       MSyncExtObserver
 *
 * Description:  
 */

class MSyncExtObserver
{
        public: // Public pure virtual functions.

        /**
         * Function:    SyncCompleted
         *
         */
        virtual void SyncCompleted(TInt err) = 0;
 };


/**
 * Class:       CPreSyncPlugin
 *
 * Description: Custom ECOM interface definition. This interface is used by
 *              clients to handle roamong . 
 */
class CPreSyncPlugin: public CBase
{
public: 
    /**
     * Function   :   NewL(TUid aImplementationUid);
     * Description:   Implementation created based on implementation ID
     */
    static CPreSyncPlugin* NewL(TUid aImplementationUid);
    
    /**
     * Function   :   NewL(const TDesC8& aParam);
     * Description:   Implementation created based Implemetation resolution parameter
     */
    static CPreSyncPlugin* NewL(const TDesC8& aParam);


    /**
     * Function:   ~CPreSyncPlugin
     *
     * Description: Wraps ECom object destruction. Notifies the ECOM
     *              framework that specific instance is being destroyed.
     */
    virtual ~CPreSyncPlugin();


    public: // Public pure virtual functions.

    /**
     * Function:    IsSupported
     *
     */
    virtual TBool IsSupported() = 0;
    
    /**
     * Function:    CanSync
     *
     */
    virtual TBool CanSyncL() = 0;
    
    /**
     * Function:    SetProfile  
     *
     */
    virtual TBool SetProfile(const TSmlProfileId& aProfileId) = 0;
    
    /**
     * Function:    SyncNow  
     *
     */   
    virtual TInt SyncNow(MSyncExtObserver* aObserver) = 0 ;
    
public: 

        /** iDtor_ID_Key Instance identifier key. When instance of an
             *               implementation is created by ECOM framework, the
             *               framework will assign UID for it. The UID is used in
             *               destructor to notify framework that this instance is
             *               being destroyed and resources can be released.
             */
        TUid iDtor_ID_Key;

        
};

#include "CPreSyncPlugin.inl" // Own base implementations for ECOM

#endif		// CPCS_PLUGIN_H

// End of File