diff -r 000000000000 -r 99ef825efeca serviceapifw_plat/liw_criteria_api/inc/liwcommon.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/serviceapifw_plat/liw_criteria_api/inc/liwcommon.h Mon Mar 30 12:51:20 2009 +0300 @@ -0,0 +1,368 @@ +/* +* Copyright (c) 2003-2005 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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, types, classes etc. to be used both +* consumer and provider side. +* +*/ + + + + + + + +#ifndef LIW_COMMON_H +#define LIW_COMMON_H + +// INCLUDES +#include +#include +#include + +// CONSTANTS + +// MACROS + +// FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS +class CEikMenuPane; +class CLiwGenericParamList; + +// CLASS DECLARATION + +/** + * Criteria item data. + * This class encapsulates an LIW criteria item. Criteria items are building + * blocks for LIW interests, i.e. an interest is a list of criteria items. + * A criteria item can be defined dynamically (by using this class) or + * in a resource file. + * + * @lib ServiceHandler.lib + * @since Series 60 2.6 + */ +class CLiwCriteriaItem : public CBase + { + public: // Constructors and destructor + /** + * Constructs a criteria item instance with null items. + * + * @return A pointer to the new object. + */ + IMPORT_C static CLiwCriteriaItem* NewL(); + + /** + * Constructs a criteria item instance with null items. Leaves the + * pointer to the cleanup stack. + * + * @return A pointer to the new object. + */ + IMPORT_C static CLiwCriteriaItem* NewLC(); + + /** + * Constructs a criteria item instance. + * + * @param aCriteriaId The criteria ID. + * @param aServiceCmd The service command. + * @param aContentType The content type. + * @return A pointer to the new object. + */ + IMPORT_C static CLiwCriteriaItem* NewL( + TInt aCriteriaId, + TInt aServiceCmd, + const TDesC8& aContentType); + + /** + * Constructs a criteria item instance. Leaves the pointer to the + * cleanup stack. + * + * @param aCriteriaId The criteria ID. + * @param aServiceCmd The service command. + * @param aContentType The content type. + * @return A pointer to the new object. + */ + IMPORT_C static CLiwCriteriaItem* NewLC( + TInt aCriteriaId, + TInt aServiceCmd, + const TDesC8& aContentType); + + /** + * Constructs a criteria item instance. + * + * @param aCriteriaId The criteria ID. + * @param aServiceCmd The service command. + * @param aContentType Content type. + * @return A pointer to the new object. + */ + IMPORT_C static CLiwCriteriaItem* NewL( + TInt aCriteriaId, + const TDesC8& aServiceCmd, + const TDesC8& aContentType); + + /** + * Constructs a criteria item instance. + * + * @param aCriteriaId The criteria ID. + * @param aServiceCmd The service command. + * @param aContentType Content type. + * @return A pointer to the new object. + */ + IMPORT_C static CLiwCriteriaItem* NewLC( + TInt aCriteriaId, + const TDesC8& aServiceCmd, + const TDesC8& aContentType); + + /** + * Destructor. + */ + IMPORT_C virtual ~CLiwCriteriaItem(); + + public: // New functions + /** + * Sets the criteria ID. + * + * @param aId The criteria ID. + */ + IMPORT_C void SetId(TInt aId); + + /** + * Sets the service class. + * + * @param aServiceUid The service class, see TLiwServiceClass. + */ + IMPORT_C void SetServiceClass(const TUid& aServiceUid); + + /** + * Sets the service command UID. + * + * @param aServiceCmd The LIW service command, see TLiwServiceCommands. + */ + IMPORT_C void SetServiceCmd(TInt aServiceCmd); + + /** + * Sets the service command name. + * + * @param aServiceCmd The LIW service command. + */ + IMPORT_C void SetServiceCmdL(const TDesC8& aServiceCmd); + + /** + * Sets the content type. Makes a copy of the string data. + * + * @param aContentType Content MIME type, event type or any agreed one. + */ + IMPORT_C void SetContentTypeL(const TDesC8& aContentType); + + /** + * Gets the criteria ID, 0 if not defined. + * + * @return The criteria ID. + */ + IMPORT_C TInt Id() const; + + /** + * Gets the service class UID. + * + * @return The service class UID, see TLiwServiceClass. + */ + IMPORT_C const TUid& ServiceClass() const; + + /** + * Gets the service command UID. KNullUid, if not defined. + * + * @return The service command UID, see TLiwServiceCommands. + */ + IMPORT_C TInt ServiceCmd() const; + + /** + * Gets the service command name. + * + * @return The service command name. + */ + IMPORT_C const TDesC8& ServiceCmdStr() const; + + /** + * Gets the content type. + * + * @return The content type. + */ + IMPORT_C const TDesC8& ContentType() const; + + /** + * Sets the options. + * + * @param aOptions Options. + */ + IMPORT_C void SetOptions(TUint aOptions); + + /** + * Gets the options. + * + * @return Options. + */ + IMPORT_C TUint Options() const; + + /** + * Maximum number of providers allowed for this criteria item. + * + * @return Maximum number of providers allowed for this criteria item. + */ + IMPORT_C TInt MaxProviders() const; + + /** + * Reads a criteria item from a resource. + * + * @param aReader A resource reader pointing to a criteria item. + */ + IMPORT_C void ReadFromResoureL(TResourceReader& aReader); + + /** + * Returns the default provider. + * + * @return The default provider UID. + */ + IMPORT_C TUid DefaultProvider() const; + + /** + * Sets the default provider. + * + * @param aDefault The UID of a default provider. + */ + IMPORT_C void SetDefaultProvider(TInt aDefault); + + /** + * Equality operator. Two criteria items are considered equal only if all + * parameters match. The parameters are: criteria id, service command, + * content type, service class, default provider, max providers and options). + * + * @param aItem Criteria item to compare. + * @return ETrue if criteria items are equal, EFalse otherwise. + */ + IMPORT_C TBool operator==(const CLiwCriteriaItem& aItem); + + /** + * Sets the maximum number of providers. + * + * @param aMaxProviders The maximum number of providers. + */ + IMPORT_C void SetMaxProviders(TInt aMaxProviders); + + public: + /** + * If set, only ROM based providers can be attached to this criteria. + * + * @return ETrue if LIW_OPTIONS_ROM_ONLY bit is set, EFalse otherwise. + */ + inline TBool RomOnly() const; + + IMPORT_C void SetMetaDataOptions(const TLiwVariant& aMetaDataOptions); + + IMPORT_C void GetMetaDataOptions(TLiwVariant& aMetaDataOptions) const; + + private: + /** + * C++ default constructor. + */ + CLiwCriteriaItem(); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL( + TInt aCriteriaId, + TInt aServiceCmd, + const TDesC8& aContentType); + + void ConstructL( + TInt aCriteriaId, + const TDesC8& aServiceCmd, + const TDesC8& aContentType); + + private: + // Criteria ID. + TInt iCriteriaId; + // Service class UID + TUid iServiceClass; + // Service command UID + TInt iServiceCmd; + // Content type (MIME type). + HBufC8* iContentType; + // Additional options for ROM + TLiwVariant iOptions; + //Default provider implementation uid + TUid iDefaultProvider; + // Reserved member + TLiwVariant iReserved; + // Max providers + TInt iMaxProviders; + // Metadata Options + TLiwVariant iMetadataOptions; + }; + + +inline TBool CLiwCriteriaItem::RomOnly() const + { + return (Options() & LIW_OPTIONS_ROM_ONLY) != 0; + } + + +/** +* Interest is an array of criteria items. +*/ +typedef RPointerArray RCriteriaArray; + +/** +* Abstact callback interface to handle callbacks or events +* from providers. This callback is needed when +* - Consumer wants to pre-check output parameters before returning +* synchronous Handle*Cmd. +* - Asynchronous Handle*Cmd is used. +* - An asynchronous event occurs in the system. +* +* @lib ServiceHandler.lib +* @since Series 60 2.6 +*/ +class MLiwNotifyCallback // needs to handle this as well? + { + public: + /** + * Handles notifications caused by an asynchronous Execute*CmdL call + * or an event. + * + * @param aCmdId The service command associated to the event. + * @param aEventId Occured event, see LiwCommon.hrh. + * @param aEventParamList Event parameters, if any, as defined per + * each event. + * @param aInParamList Input parameters, if any, given in the + * related HandleCommmandL. + * @return Error code for the callback. + */ + virtual TInt HandleNotifyL( + TInt aCmdId, + TInt aEventId, + CLiwGenericParamList& aEventParamList, + const CLiwGenericParamList& aInParamList) = 0; + IMPORT_C static TInt32 GetTransactionID(); + }; + +#endif // LIW_COMMON_H + +// End of File + +