applicationinterworkingfw/ServiceHandler/inc/sdk_special/AiwCommon.hrh
author hgs
Fri, 08 Oct 2010 22:24:02 +0800
changeset 69 8cba18227181
parent 0 2f259fa3e83a
permissions -rw-r--r--
201039_2

/*
* Copyright (c) 2003-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:     Declares common constants to be used in both resources and
*                C++ code of consumers and providers.
*
*/





#ifndef AIW_COMMON_HRH
#define AIW_COMMON_HRH

// DATA TYPES

// CONSTANTS

/**
* Predefined service commands (UIDs).
*/
enum TAiwServiceCommands
    {
    /** Null value. */
    KAiwCmdNone = 0,

    /** Show help content. */
    KAiwCmdHelp = 0x10275075,
    
    /** Client can request that map should be displayed on screen. */ 
    KAiwCmdMnShowMap = 0x10206904,
    
    /** Allows to start navigation to desired destination. */
    KAiwCmdMnNavigateTo = 0x10206905,
    
    /** Starts reverse geocoding request: finding address for given coordinate. */
    KAiwCmdMnAddrByCoord = 0x10206906,
    
    /** Starts geocoding request: finding coordinate by given address. */
    KAiwCmdMnCoordByAddr = 0x10206907,    
    
    /** Allows client to request that user shall select a location from map. */
    KAiwCmdMnSelectFromMap = 0x10206908
    };


// Service command strings. These strings are used in service provider's
// opaque data field to specify what service command(s) the provider implements.

#define KAiwCmdNoneStr                    "00000000"
#define KAiwCmdHelpStr                    "10275075"
#define KAiwCmdMnShowMapStr               "10206904"
#define KAiwCmdMnNavigateToStr            "10206905"
#define KAiwCmdMnAddrByCoordStr           "10206906"
#define KAiwCmdMnCoordByAddrStr           "10206907"
#define KAiwCmdMnSelectFromMapStr         "10206908"


/**
* Service command options (bits) to alter command handling behaviour.
*/
enum TAiwServiceCmdOptions
    {
    /**
    * Consumer wants asynchronous command handling.
    * The default is synchronous command handling.
    * In asynchronous case consumer needs to pass a callback to provider.
    */
    KAiwOptASyncronous = 0x0001,

    /**
    * Consumer wants provider to make a callback to check coming output
    * parameters prior returning from service command handling.
    * Consumer needs to pass a callback to provider.
    */
    KAiwOptOutParamCheck = 0x0002,

    /**
    * Consumer tells provider that it is prepared to handle
    * callback events for possibly incomplete/wrong parameter list. 
    */
    KAiwOptInParamCheck = 0x0004,
    
    /**
    * Consumer wants to cancel an asynchronous AIW service. 
    * When a consumer wants to cancel the asynchronous service that a provider
    * is executing, it should call ExecuteMenuCmdL() or ExecuteServiceCmdL() 
    * with the same parameters as when requesting the service, but set this 
    * cancel bit on. The cancel operation itself is synchronous, i.e. the 
    * provider must call the consumer's callback with KAiwEventCanceled before 
    * the Execute*CmdL() returns.
    */
    KAiwOptCancel = 0x0008
    };


/**
* Service classes (UID). Technically these are same as service interface UIDs.
*/
enum TAiwServiceClass
    {
    /** 
    * None. 
    */
    KAiwClassNone = 0x0,

    /**
    * Base service (no UI expected). 
    * Every other class must implement this always!
    */
    KAiwClassBase = 0x101F8650,

    /** 
    * Menu service class (offers menu based services).
    */
    KAiwClassMenu = 0x101F8652
    };


/**
* Event codes. To be used with HandleNotifyL method.
*/
enum
    {
    /**
    * Asynchronous service informs consumer to prepare itself for 
    * action. 
    */
    KAiwEventStarted = 1,

    /**
    * Asynchronous service request completed.
    */
    KAiwEventCompleted = 2,

    /**
    * Asynchronous service request canceled.
    */
    KAiwEventCanceled = 3,
    
    /**
    * Error during asynchronous service request.
    */
    KAiwEventError = 4,
    
    /**
    * Relates to KAiwOptOutParamCheck.
    */
    KAiwEventOutParamCheck = 5,
    
    /**
    * Relates to KAiwOptInParamCheck.
    */
    KAiwEventInParamCheck = 6,
    
    /**
    * Provider informs consumer that service is no longer available or 
    * has stopped.
    */
    KAiwEventStopped = 7,
    
    /**
    * Provider asks consumer whether Exit can be done (needed at least in 
    * embedded use cases where server application offers Exit possibility 
    * to end user, but consumer can not allow Exit due to fact that for
    * example network connections owned by consumer are open and they need 
    * to be kept alive).    
    */
    KAiwEventQueryExit = 8
    };
    
// ============================================================================
// Menu item flags for AIW consumers.   
// ============================================================================ 
/** 
 * Always keep the provider menu items in a submenu. 
 */
#define AIW_CASCADE_ID               0x01010001

/** 
 * Menu item is placed intelligently either to the main level or a submenu. 
 */
#define AIW_INTELLIGENT_CASCADE_ID   0x01010010

/** 
 * Consumer defines the menu title. 
 */
#define AIW_LOCK_SUBMENU_TITLE       0x00000020

// ============================================================================
// Criteria item flags for AIW consumers.    
// ============================================================================
/** 
 * Criteria item loadOptions bit, only providers in ROM are accepted. 
 */
#define AIW_OPTIONS_ROM_ONLY         0x01

#endif // AIW_COMMON_HRH

// End of file