epoc32/include/mw/aiwcommon.h
branchSymbian2
changeset 2 2fe1408b6811
parent 1 666f914201fb
child 4 837f303aceeb
--- a/epoc32/include/mw/aiwcommon.h	Tue Nov 24 13:55:44 2009 +0000
+++ b/epoc32/include/mw/aiwcommon.h	Tue Mar 16 16:12:26 2010 +0000
@@ -1,1 +1,314 @@
-aiwcommon.h
+/*
+* 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 "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Declares common constants, types, classes etc. to be used both
+*                consumer and provider side.
+*
+*/
+
+
+
+
+
+#ifndef AIW_COMMON_H
+#define AIW_COMMON_H
+
+// INCLUDES
+#include <aiwcommon.hrh>
+#include <barsread.h> 
+#include <aiwgenericparam.h>
+
+// CONSTANTS
+
+// MACROS
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+class CEikMenuPane;
+class CAiwGenericParamList;
+
+// CLASS DECLARATION
+
+/**
+ * Criteria item data.
+ * This class encapsulates an AIW criteria item. Criteria items are building 
+ * blocks for AIW 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 CAiwCriteriaItem : public CBase
+    {
+    public:   // Constructors and destructor
+        /** 
+        * Constructs a criteria item instance with null items.
+        *
+        * @return A pointer to the new object.
+        */
+        IMPORT_C static CAiwCriteriaItem* 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 CAiwCriteriaItem* 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 CAiwCriteriaItem* 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 CAiwCriteriaItem* NewLC(
+            TInt aCriteriaId,
+            TInt aServiceCmd,
+            const TDesC8& aContentType);
+
+        /** 
+        * Destructor.
+        */        
+        IMPORT_C virtual ~CAiwCriteriaItem();
+
+    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 TAiwServiceClass.
+        */
+        IMPORT_C void SetServiceClass(const TUid& aServiceUid);
+        
+        /** 
+        * Sets the service command UID.
+        *
+        * @param aServiceCmd The AIW service command, see TAiwServiceCommands.
+        */
+        IMPORT_C void SetServiceCmd(TInt 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 TAiwServiceClass.
+        */
+        IMPORT_C const TUid& ServiceClass() const;
+        
+        /** 
+        * Gets the service command UID. KNullUid, if not defined.
+        *
+        * @return The service command UID, see TAiwServiceCommands.
+        */
+        IMPORT_C TInt ServiceCmd() 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 CAiwCriteriaItem& 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 AIW_OPTIONS_ROM_ONLY bit is set, EFalse otherwise.
+        */    
+        inline TBool RomOnly() const;
+
+    private:
+        /**
+        * C++ default constructor.
+        */
+        CAiwCriteriaItem();    
+    
+        /**
+        * 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);
+
+    private:
+        // Criteria ID.
+        TInt iCriteriaId;
+        // Service class UID
+        TUid iServiceClass;
+        // Service command UID
+        TInt iServiceCmd;
+        // Content type (MIME type). 
+        HBufC8* iContentType;
+        // Additional options
+        TAiwVariant iOptions;
+        //Default provider implementation uid
+        TUid iDefaultProvider;
+        // Reserved member
+        TAiwVariant iReserved;
+        // Max providers
+        TInt iMaxProviders;
+    };
+
+
+inline TBool CAiwCriteriaItem::RomOnly() const
+    {
+    return (Options() & AIW_OPTIONS_ROM_ONLY) != 0;
+    }
+
+
+/**
+* Interest is an array of criteria items.
+*/
+typedef RPointerArray<CAiwCriteriaItem> RCriteriaArray;
+
+/**
+* Abstract 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 MAiwNotifyCallback
+    {
+    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 AiwCommon.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,
+            CAiwGenericParamList& aEventParamList,
+            const CAiwGenericParamList& aInParamList) = 0;
+    };
+
+#endif // AIW_COMMON_H
+
+// End of File
+
+