remotemgmt_plat/syncml_notifier_api/inc/SyncMLNotifierParams.h
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:27:42 +0100
branchRCL_3
changeset 26 19bba8228ff0
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201033 Kit: 201035

/*
* Copyright (c) 2005 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:  Partial declaration of the notifier API.
*
*/



#ifndef SYNCMLNOTIFIERPARAMS_H
#define SYNCMLNOTIFIERPARAMS_H

#include <centralrepository.h>
#include <schinfo.h>

//  INCLUDES

// CONSTANTS
const TUint KSyncMLMaxServerMsgLength = 200;
const TUint KSyncMLMaxProfileNameLength = 50;
const TUint KSyncMLMaxDefaultResponseMsgLength = 300;
const TUint KSyncMLMaxAlertResultLength = 150;
const TUint KSyncMLChoiceItemsLengthBuffer = 400;
const TUint KSyncMLMaxChoiceItemLength = 100;
const TUint KSyncMLChunknameLength = 25;

// MACROS

// FORWARD DECLARATIONS
class TSyncMLAppLaunchNotifParams;
class TSyncMLDlgNotifParams;
class TSyncMLAppLaunchNotifRetVal;
class TSyncMLDlgNotifRetVal;
class TSyncMLFwUpdNotifParams;
class TSyncMLFwUpdNotifRetVal;
class TSyncMLDlgNotifReturnParams;


// DATA TYPES
typedef TPckgBuf<TSyncMLAppLaunchNotifParams> TSyncMLAppLaunchNotifParamsPckg;
typedef TPckgBuf<TSyncMLDlgNotifParams>       TSyncMLDlgNotifParamsPckg;
typedef TPckgBuf<TSyncMLFwUpdNotifParams>     TSyncMLFwUpdNotifParamsPckg;
typedef TPckgBuf<TSyncMLAppLaunchNotifRetVal> TSyncMLAppLaunchNotifRetValPckg;
typedef TPckgBuf<TSyncMLDlgNotifRetVal>       TSyncMLDlgNotifRetValPckg;
typedef TPckgBuf<TSyncMLFwUpdNotifRetVal>     TSyncMLFwUpdNotifRetValPckg;
typedef TPckgBuf<TSyncMLDlgNotifReturnParams>    TSyncMLDlgNotifReturnParamsPckg;


enum TSyncMLSessionTypes
    {
    ESyncMLUnknownSession,
    ESyncMLSyncSession,
    ESyncMLMgmtSession,
    };

enum TSyncMLDlgNoteTypes
    {
    ESyncMLInfoNote,
    ESyncMLErrorNote,
    ESyncMLOkQuery,
    ESyncMLYesNoQuery,
    ESyncMLQueryNote,  // Deprecated. Use ESyncMLOkQuery or ESyncMLYesNoQuery instead
    ESyncMLInputQuery, //For 1102 User Input alert 	
	ESyncMLSingleChoiceQuery, //1103
    ESyncMLMultiChoiceQuery  //1104
    };

enum TSyncMLFwUpdNoteTypes
    {
    ESyncMLFwUpdUnknown,
    ESyncMLFwUpdErrorNote,
    ESyncMLFwUpdResultNote,
    ESyncMLFwUpdStartQuery,
    ESyncMLFwUpdRebootNote,
    ESyncMLFwUpdNoReminder,       //Enum for No Reminder & Install Later note
    ESyncMLFwUpdLargeNotEnoughMemory,  //Enum for large object No Enough memory situation
    ESyncMLFwUpdOmaDLNotEnoughMemory, //Enum for Oma Download No Enough memory situation
    ESyncMLFwUpdOmaDLUserCancel,	//Enum for Oma Download User cancel situation
    ESyncMLFwUpdOmaDLPostponed,	//Enum for Oma Download postponed
    ESyncMLFwUpdOmaDLCancelled, //Enum for Oma Download cancelled
    ESyncMLFwUpdOmaDLResume,        //Enum for Oma Download Resume
    ESyncMLFwUpdStartQueryEnc,      //Enum for starting installation on encrypted memory
	ESyncMLFwUpdForceQuery,         // Forcing the update when the retry count for postponing the update expires.
    ESyncMLFwUpdPostponeNote,        // The note that is to be shown when user postpones the udpate
    ESyncMLFwUpdPostponeLimitQuery

    };


enum TSyncMLFwUpdNoteInfo
    {
    KErrCommsLineFail2, //Enum for Oma Download connection failure with resume supported
    KErrGeneralResume, //Enum for Oma Download general error with resume supported
    KErrGeneralNoResume, //Enum for Oma Download general error without resume supported
    KErrBadUsbPower,      //Enum for low battery error when USB charging is supported 
    KErrBadPowerForEnc,     //Enum for low battery error during encryption
    KErrDeviceMemoryBusy    //Enum to show drive busy error when encryption or decryption is in progress
    };


enum TSyncMLSANSupport
    {
    ESANNotSpecified,
    ESANSilent,
    ESANUserInformative,
    ESANUserInteractive
    };
    
enum TSyncMLUserInputTypes
    {
    ESyncMLInputTypeAlphaNumeric,
    ESyncMLInputTypeNumeric,
    ESyncMLInputTypeDate,
    ESyncMLInputTypeTime,
    ESyncMLInputTypePhoneNumber,
    ESyncMLInputTypeIPAddress	
    };
    
 enum TSyncMLUserInputEchoTypes
    {
    ESyncMLEchoTypeText,
    ESyncMLEchoTypePassword
    };   

    
// CLASS DECLARATION

/**
* Struct to allow the sending of parameters to SyncML application
* starter notifier plugin.
*
*  @lib SyncMLNotifier
*  @since Series 60 3.0
*/
class TSyncMLAppLaunchNotifParams
	{
    public:
        // Type of the SyncML session to be initiated. 
	    TSyncMLSessionTypes iSessionType;
        // Identifier of the job requested.
	    TInt iJobId;
	    // Identifier of the profile used
	    TInt iProfileId;
       // Server alert Ui mode
	    TInt iUimode;
	};

/**
* Struct to allow the delivery of return values from SyncML application
* starter notifier plugin.
*
*  @lib SyncMLNotifier
*  @since Series 60 3.0
*/
class TSyncMLAppLaunchNotifRetVal
	{
    public:
        // Identifier of the session requested.
	    TUid iSecureId;
	};


/**
* Struct to allow the sending of parameters to SyncML server
* dialog notifier plugin.
*
*  @lib SyncMLNotifier
*  @since Series 60 3.0
*/
class TSyncMLDlgNotifParams
	{
    public:
        // Type of the query or note to be shown.
	    TSyncMLDlgNoteTypes iNoteType;
        // Message to be shown on the screen.
	    TBufC<KSyncMLMaxServerMsgLength> iServerMsg;
        // Timeout of the note (in seconds). 0 = No timeout.
	    TInt iMaxTime;
	    //Response message in case of 1102 alert
	    TBuf<KSyncMLMaxDefaultResponseMsgLength> iDR;		
	    //Input type
	    TInt iIT;
	    //Echo type
	    TInt iET;
	    //Max length
	    TInt iMaxLength;	    
	    //For choice alerts	 
	    TBufC<KSyncMLChoiceItemsLengthBuffer> iItemLength;
		TBufC<KSyncMLChunknameLength> iChunkName;
		//Number of choice items
	    TInt iNumberOfItems;			   
	};
	


//For 1102 server alert
class TSyncMLDlgNotifReturnParams
   {
   public:
   TInt iretval; //which stores the yes/no/end key pressed
   TBuf<KSyncMLMaxAlertResultLength> irettext;	
   };


/**
* Struct to allow the delivery of return values from SyncML server
* dialog notifier plugin.
*
*  @lib SyncMLNotifier
*  @since Series 60 3.0
*/
class TSyncMLDlgNotifRetVal
	{
	// Included for future use.
	};

/**
* Struct to allow the sending of parameters to SyncML firmware
* update notifier plugin.
*
*  @lib SyncMLNotifier
*  @since Series 60 3.1
*/
class TSyncMLFwUpdNotifParams
	{
    public:
        // Type of the SyncML session to be initiated. 
	    TSyncMLFwUpdNoteTypes iNoteType;
	    
        // Generic integer parameter.
        // Usage:
        // ESyncMLFwUpdErrorNote:  Symbian error code.
        // ESyncMLFwUpdResultNote: Symbian error code.
        // ESyncMLFwUpdStartQuery: Firmware update profile identifier.
	    TInt iIntParam;
	    TInt iMemoryNeeded;// Parameter to hold how much memory is to be
	                       // freed for downloading the package.
	    TBool iEncryptReq; //To tell if encrypt query should be shown to user.
		TInt iFotaUserPostponeCount; // To determine the number of times user has postponed the update.
	    TInt iFotaMaxPostponeCount; // The maximum number of times the update can be postponed.
	    TBuf<KSyncMLMaxServerMsgLength> iSelectedReminder; // The option selected by the user to postpone the update.
	    TIntervalType iIntervalType;
	    TInt iInterval;
	    
	};

/**
* Struct to allow the delivery of return values from SyncML firmware
* update notifier plugin.
*
*  @lib SyncMLNotifier
*  @since Series 60 3.1
*/
class TSyncMLFwUpdNotifRetVal
	{
	// Included for future use.
	};

#endif      // SYNCMLNOTIFIERPARAMS_H   

// End of File