profilesservices/ProfileEngine/EngInc/MProfileEngineExtended.h
changeset 0 8c5d936e5675
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/profilesservices/ProfileEngine/EngInc/MProfileEngineExtended.h	Thu Dec 17 08:52:52 2009 +0200
@@ -0,0 +1,163 @@
+/*
+* Copyright (c) 2002 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:  Extended profile engine interface.
+*
+*/
+
+
+
+#ifndef __MPROFILEENGINEEXTENDED_H__
+#define __MPROFILEENGINEEXTENDED_H__
+
+//  INCLUDES
+#include <MProfileEngine.h>
+
+// DATA TYPES
+enum TProfileUtilityObjectType
+    {
+    EProfileUtilityObjectPresenceTool      = 0
+    };
+
+// FUNCTION PROTOTYPES
+class MProfileEngineExtended;
+class MProfilesLocalFeatures;
+
+/**
+* Create extended profile engine, ownership transfered.
+*
+*  @lib ProfileEng.lib
+*  @since 2.0
+*/
+IMPORT_C MProfileEngineExtended* CreateProfileEngineExtendedL();
+
+/**
+* Create extended profile engine, ownership transfered.
+*
+*  @param aFs An open file server session, ownership is NOT transferred.
+*  aFs must remain connected for the lifetime of the returned object.
+*  @lib ProfileEng.lib
+*  @since 3.0
+*/
+IMPORT_C MProfileEngineExtended* CreateProfileEngineExtendedL( RFs* aFs );
+
+// FORWARD DECLARATIONS
+class MProfileExtended;
+class MProfilePresence;
+
+// CLASS DECLARATION
+
+/**
+*  Extended profile engine interface.
+*  This interface extend MProfileEngine interface and
+*  offers methods to get profile settings and store profile settings.
+*
+*  @lib N/A
+*  @since 2.0
+*/
+class MProfileEngineExtended : public MProfileEngine
+    {
+    protected:  // Destructor
+
+        virtual ~MProfileEngineExtended() {};
+
+    public: // New functions
+
+        /**
+        * Create extended profile, ownership transfered.
+        * @since 2.0
+        * @param aId Profile ID
+        * @return Instance of the MProfileExtended
+        */
+        virtual MProfileExtended* ProfileLC( TInt aId ) = 0;
+
+        /**
+        * Create extended profile, ownership transfered.
+        * @since 2.0
+        * @param aId Profile ID
+        * @return Instance of the MProfileExtended
+        */
+        virtual MProfileExtended* ProfileL( TInt aId ) = 0;
+
+        /**
+        * Store profile settings. Leaves with KErrAccessDenied if one or more
+        * of the settings of the target profile is/are read-only.
+        * @since 2.0
+        * @param aProfile Profile
+        */
+        virtual void CommitChangeL( MProfileExtended& aProfile ) = 0;
+
+        /**
+        * Send presence settings.
+        * @since 2.1
+        * @param aProfile Profile
+        */
+        virtual void SendPresenceSettingsL(
+            const MProfilePresence& aPresence ) = 0;
+
+        /**
+        * Delete profile.
+        * @since 2.1
+        * @param aId Profile ID
+        * @return Error code
+        */
+        virtual TInt DeleteProfileL( TInt aId ) = 0;
+
+        /**
+        * Create new profile, ownership transfered.
+        * @since 2.1
+        * @return Instance of the MProfileExtended
+        */
+        virtual MProfileExtended* CreateProfileL() = 0;
+
+        /**
+        * Returns is profile default profile.
+        * @since 2.0
+        * @param aId Profile ID
+        * @return Is profile default profile
+        */
+        virtual TBool IsDefaultProfile( TInt aId ) = 0;
+
+        /**
+        * Returns locally variated features of Profiles.
+        * @since 2.6
+        */
+        virtual MProfilesLocalFeatures& LocalFeatures() = 0;
+
+        /**
+         * Returns an utility object needed for a specific task. The returned
+         * object can be generally of any class and the caller must know what
+         * it wants and cast the returned object to the correct class.
+         * The ownership is not transferred.
+         * @param aType the type of the utility object to be returned.
+         * @param aImpl the utility object needed by the client on return, NULL
+         * if there isn't any of the given type
+         */
+        virtual void GetProfileUtilityObject(
+                TProfileUtilityObjectType aType, TAny*& aImpl ) = 0;
+
+        /**
+        * Set timed active profile. When the time expires the profile which was
+        * active before calling this method will be reactivated.
+        * If ID is incorrect then leave with KErrNotFound.
+        * @since 3.2
+        * @param aId Profile ID
+        * @param aTime time when the profile activation expires
+        */
+        virtual void SetActiveProfileTimedL( TInt aId, TTime aTime ) = 0;
+
+    };
+
+#endif      // __MPROFILEENGINEEXTENDED_H__
+
+// End of File